/dev/null"; // Registry order is dispatch order, so the table reads the way the cycle runs $cron_jobs = []; foreach (cronJobRegistry() as $job) { $cron_jobs[$job['name']] = $job; $cron_jobs[$job['name']]['row'] = null; } $sql = mysqli_query($mysqli, "SELECT * FROM cron_jobs"); while ($job_row = mysqli_fetch_assoc($sql)) { if (isset($cron_jobs[$job_row['cron_job_name']])) { $cron_jobs[$job_row['cron_job_name']]['row'] = $job_row; } } ?>

Cron

Cron is not running
ITFlow last heard from cron . Nothing below will run - no mail is being sent, no email is being turned into tickets, and invoices are not being generated. Add this line to the crontab of the user that owns the ITFlow files:
Cron last checked in .
Cron is switched off
The dispatcher is running, but every job below stops itself immediately while this is off - no mail is sent, no email becomes a ticket, and nothing is invoiced.

The master switch is on. Turning it off stops every job at once without touching their schedules, which is what you want on a restored backup or a staging clone - those come up with every job enabled and will otherwise email clients and charge cards. Switching back on returns you to exactly this configuration. Turn cron off.

Queued'; } elseif ($last_status === 'Running') { $status_badge = 'Running'; } elseif ($last_status === 'Completed') { $status_badge = 'Completed'; } elseif ($last_status === 'Failed') { $status_badge = 'Failed'; } elseif ($last_status !== null) { $status_badge = 'Stopped'; } else { $status_badge = 'Never run'; } ?>
Job Schedule Last Run Duration Status Next Run Action
Disabled

cron/

9) { ?>
Last error

Run Now does not start the job in your browser - it asks the dispatcher to pick it up on its next pass, so a job starts within a minute and still runs on the command line with the same locking as a scheduled run. Detailed per-job output is in App Logs.