Deprecated

Laravel Web Cron

Laravel 5.1 queue runner for webcron (with runtime limit)

Setup

Add the package to the require section of your composer.json and run composer update

"kduma/cron": "^1.1"

Then add the Service Provider to the providers array in config/app.php but not before Illuminate\Queue\QueueServiceProvider:

KDuma\Cron\CronServiceProvider::class,
KDuma\Cron\WebCronServiceProvider::class,

Usage

Command syntax is like queue:work --daemon with 2 new options:

artisan queue:cron [-t|--timelimit[="..."]] [-r|--runlimit[="..."]] [--queue[="..."]] [--delay[="..."]] [--force] [--sleep[="..."]] [--tries[="..."]] [connection]
  • --timelimit (-t) - Maximum time this command can work in seconds. (default: 60)
  • --runlimit (-r) - Maximum queue jobs to run in. (default: no limit)

Best practices

  • Split your jobs into small tasks that takes small amount of time
  • When you choice time limit, subtract time of longest job

Web Cron

In your .env file add:

WEBCRON_SECRET=YOUR_SECRET

Replace YOUR_SECRET with your secret. Now you can run queue by visiting http://<domain>/cron/YOUR_SECRET url.

You can also configure time limit and/or run limit using following entries in .env:

WEBCRON_TIMELIMIT=30
WEBCRON_RUNLIMIT=25