29/06
2018
Wallogit.com
2017 © Pedro Peláez
, (*1)
Schedule jobs with this framework-agnostic cron scheduler, which can be easily integrated into your existing project or run as a standalone command scheduler., (*2)
Licensed under MIT. Totally free for private or commercial projects., (*3)
composer require andrewdyer/scheduler
// SendReminderJob.php
namespace App\Jobs;
use Anddye\Scheduler\AbstractJob;
class SendReminderJob extends AbstractJob
{
public function handle(): void
{
// TODO: Send reminder to user somehow
}
}
// index.php
$scheduler = new Anddye\Scheduler\Scheduler();
// At every 45th minute, run the send reminder job.
$scheduler->addJob(new App\Jobs\SendReminderJob())->setExpression('*/45 * * * *');
// add more jobs ...
$scheduler->run();
| Helper Method | Runs... | Example |
|---|---|---|
| daily() | At 00:00 | $scheduler->addJob($job)->daily() |
| dailyAt(int $hour, int $minute) | At a specific hour and minute | $scheduler->addJob($job)->dailyAt(12, 30) |
| dailyTwice(int $firstHour, int $lastHour) | At minute 0 past two specific hours | $scheduler->addJob($job)->dailyTwice(11, 23) |
| mondays() | At every minute on Monday | $scheduler->addJob($job)->mondays() |
| tuesdays() | At every minute on Tuesday | $scheduler->addJob($job)->tuesdays() |
| wednesdays() | At every minute on Wednesday | $scheduler->addJob($job)->wednesdays() |
| thursdays() | At every minute on Thursday | $scheduler->addJob($job)->thursdays() |
| fridays() | At every minute on Friday | $scheduler->addJob($job)->fridays() |
| saturdays() | At every minute on Saturday | $scheduler->addJob($job)->saturdays() |
| sundays() | At every minute on Sunday | $scheduler->addJob($job)->sundays() |
| weekdays() | At every minute on Monday, Tuesday, Wednesday, Thursday, and Friday | $scheduler->addJob($job)->weekdays() |
| weekends() | At every minute on Saturday and Sunday | $scheduler->addJob($job)->weekends() |
| days(int ...$days) | At every minute on specific days | $scheduler->addJob($job)->days(2, 4, 6) |
| everyMinute() | At every minute | $scheduler->addJob($job)->everyMinute() |
| everyFiveMinutes() | At every 5th minute | $scheduler->addJob($job)->everyFiveMinutes() |
| everyTenMinutes() | At every 10th minute | $scheduler->addJob($job)->everyTenMinutes() |
| everyFifteenMinutes() | At every 15th minute | $scheduler->addJob($job)->everyFifteenMinutes() |
| everyThirtyMinutes() | At every 30th minute | $scheduler->addJob($job)->everyThirtyMinutes() |
| hourly() | At minute 1 | $scheduler->addJob($job)->hourly() |
| hourlyAt(int $minute) | At a specific minute | $scheduler->addJob($job)->hourlyAt(45) |
| monthly() | At 00:00 on day-of-month 1 | $scheduler->addJob($job)->monthly() |
| monthlyOn(int $day) | At 00:00 on a specific day-of-month | $scheduler->addJob($job)->monthlyOn(4) |
| on(int $day) | At every minute on a specific day-of-month | $scheduler->addJob($job)->on(1) |
// At minute 0 past hour 2 and 14 on Monday $scheduler->addJob(new App\Jobs\SendReminderJob())->dailyTwice(2, 14)->mondays();
// At every 15th minute on Friday $scheduler->addJob(new App\Jobs\SendReminderJob())->everyFifteenMinutes()->fridays();
// At every minute on Tuesday, Thursday, and Saturday $scheduler->addJob(new App\Jobs\SendReminderJob())->everyMinute()->days(2, 4, 6);
// At minute 45 on Monday, Tuesday, Wednesday, Thursday, and Friday $scheduler->addJob(new App\Jobs\SendReminderJob())->hourlyAt(45)->weekdays();
// At minute 1 on Monday, Wednesday, and Friday $scheduler->addJob(new App\Jobs\SendReminderJob())->hourly()->days(1,3,5);