composer require cronox/cake-cron-jobs
Ensure the Plugin is loaded in your config/bootstrap.php file
Plugin::load('Cronox/CronJobs');
Init the database table by using cakephp's migrations
bin/cake migrations migrate --plugin Cronox/CronJobs
To add method \App\Lib\Mailer::sendMail('cronox@example.com','Message text')
to cron queue:
try {
CronJobHelper::create(\App\Lib\Mailer::class, 'sendMail', ['cronox@example.com','Message text']);
} catch (\Exception $exception) {
throw $exception;
}
To run queue by cron add following line to crontab:
bin/cake cronox/cron_jobs.cron_jobs
Example output:
➜ www ✗ bin/cake cronox/cron_jobs.cron_jobs
Found 1 jobs.
Running job #5 App\Lib\Mailer::sendMail
Job is completed correctly
➜ www ✗
try {
$groupEmailCode = 'Email';
$groupSMSCode = 'SMS';
CronJobHelper::create(\App\Lib\Mailer::class, 'sendMail', ['cronox@example.com','Message text'], $groupEmailCode);
CronJobHelper::create(\App\Lib\SmsApi::class, 'sendSMS', ['321654987','Message text'], $groupSMSCode);
} catch (\Exception $exception) {
throw $exception;
}
To run grouped tasks by cron add following commands to crontab:
bin/cake cronox/cron_jobs.cron_jobs Email
bin/cake cronox/cron_jobs.cron_jobs SMS