Skip to content

Background jobs

Some of the help desk’s work doesn’t happen in answer to a click: closing tickets nobody replied to, marking tickets overdue, sending feedback emails, checking SLA deadlines, collecting email. These background jobs can run in two ways:

  • On page loads (the default): a visitor’s page request does the work, at most every 30 minutes.
  • As Joomla scheduled tasks (Pro): Joomla’s Scheduled Tasks runs them on a timetable you choose. This is the better choice for a busy desk.

The ticket maintenance run does all of this, in order:

Job What happens
Auto-close Closes answered tickets whose last reply is older than Auto-Close Tickets on General Settings. Off when that is 0.
Overdue by due date Marks a ticket overdue when its due date has passed, it is not closed and it has not been answered.
Overdue by priority Each active priority has an overdue interval (set under Flow → Priorities). A new ticket nobody has replied to, or an unanswered ticket whose last reply is older than its priority’s interval, is marked overdue.
Feedback emails Sends the feedback email for tickets closed longer ago than the feedback delay.
SLA check Re-checks open tickets against their SLA targets, marks breaches, escalates and notifies. Up to 200 tickets per run.
Reminders Sends reminders that have come due and brings snoozed tickets back.
Time-based automation Runs automation rules about elapsed time, such as “unanswered for two days”.
Webhooks Delivers queued webhook calls.
Mail queue Sends email waiting in the queue and retries messages that failed, up to 50 per run.

Email collection reads every active mailbox under Tickets → Email Tickets and turns new messages into tickets and replies.

If one ticket causes an error, it is written to System Errors and the run carries on with the next one.

With Run Background Tasks On Page Load set to Yes under General Settings, the first request to any JS Support Ticket page (on the front end or in the administrator) after the due time runs ticket maintenance and then email collection. The next run is due 30 minutes later.

Only one request runs the jobs at a time: it holds a lock for up to 15 minutes, and any other request that arrives meanwhile skips the work. The visitor whose request runs the jobs waits for them, which can be noticeable when a mailbox is slow to answer.

Without visitors, nothing runs. On a quiet site, tickets may close and email may arrive later than you expect.

The Task - JS Support Ticket plugin, installed and enabled with the component, adds four task types to Joomla’s System → Scheduled Tasks:

Task type Runs
JS Support Ticket: ticket maintenance Everything in the table above, from auto-close to the mail queue. Email collection is not included.
JS Support Ticket: collect email Email collection.
JS Support Ticket: send queued email The mail queue only, up to 100 messages per run.
JS Support Ticket: check SLA targets The SLA check only, up to 200 tickets per run.

Ticket maintenance already includes the SLA check and the mail queue. The two smaller tasks are there if you want those to run more often than the rest.

  1. In Joomla’s administrator, go to System → Scheduled Tasks and click New.
  2. Choose JS Support Ticket: ticket maintenance.
  3. Give the task a title, set its Execution Rule (for example every 15 minutes), make sure it is enabled, and click Save & Close.
  4. If you collect email, do the same for JS Support Ticket: collect email.
  5. Make sure Joomla actually runs scheduled tasks: by its lazy scheduler (on site visits) or by a server cron job or web cron. This is set in the Options of Scheduled Tasks; see Joomla’s documentation.
  6. Back in System → Settings → General Settings, set Run Background Tasks On Page Load to No and click Save Settings.

Each run is logged by Joomla with a line such as “JS Support Ticket: ticket maintenance finished.” or the SLA and mail queue counts. If a run fails, the task is marked as failed with the error.

A scheduled run also finishes a JS Support Ticket database update that stopped part way, if there is one.

Joomla’s Select a Task Type screen with the four JS Support Ticket task types.

Until an enabled ticket maintenance task exists, the SLA Rules, Notifications and Integrations screens show a notice. With page loads on, it reads “Background jobs only run when someone opens a page.” With page loads off, it reads “Background jobs are not running.” Create the task opens Joomla’s task types so you can add it.