infuse / cron
Scheduled tasks module for Infuse Framework
Installs: 2 768
Dependents: 3
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: >=7.1
- symfony/event-dispatcher: ^4.3
- symfony/lock: ^4.3
Requires (Dev)
- infuse/infuse: ~1.6
- mockery/mockery: ~1.0
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: 6.0.*
- pulsar/pulsar: ~0.9
- robmorgan/phinx: ~0.8
This package is auto-updated.
Last update: 2024-10-16 07:16:40 UTC
README
Scheduled jobs module for Infuse Framework
Installation
-
Install the package with composer:
composer require infuse/cron
-
Add the console command to run jobs to
console.commands
in your app's configuration:'console' => [ // ... 'commands' => [ // ... 'Infuse\Cron\Console\RunScheduledCommand' ] ]
-
Add the migration to your app's configuration:
'modules' => [ 'migrations' => [ // ... 'Cron' ], 'migrationPaths' => [ // ... 'Cron' => 'vendor/infuse/cron/src/migrations' ] ]
-
Add scheduled jobs to the
cron
section of your app's configuration:'cron' => [ [ 'id' => 'users:cleanup', 'class' => 'App\Users\ScheduledJobs\Cleanup', 'minute' => 0, 'hour' => 0, 'expires' => 60, 'successUrl' => 'https://webhook.example.com' ], [ 'id' => 'orgs:bill', 'class' => 'App\Billing\ScheduledJobs\Bill' ] ]
-
Code up your jobs. Each job class must be invokeable.
-
Add this to your crontab to begin running app cron jobs in the background:
* * * * * php /var/www/example.com/infuse cron:run
Events
You can subscribe to events with event subscribers from the symfony/event-dispatcher component. Your subscribers an listen to these events:
schedule_run.begin
schedule_run.finished
cron_job.begin
cron_job.finished
When you have created an event subscriber you can add it to your config like this:
'cronSubscribers' => [ 'App\EventSubscribers\MySubscriber' ]
Webhooks
You can optionally specify a URL that will be called upon a successful run. The output from the run will be available using the m
query parameter. This was designed to be compatible with Dead Man's Snitch.