jeffreyvanrossum / wp-job-scheduler
Handy wrapper to make creating WordPress job scheduling and dispatch a breeze.
0.1.3
2024-03-01 14:35 UTC
Requires
- php: ^8.0
- woocommerce/action-scheduler: ^3.7
Requires (Dev)
- laravel/pint: ^1.4
- phpcompatibility/php-compatibility: *
- spatie/ray: ^1.36
- spatie/x-ray: ^1.1
README
WP Job Scheduler
🚧 This package is still work in progress
This package is an attempt to make job dispatching and scheduling easier in WordPress.
Inspired by the syntax of Laravel and using Action Scheduler from WooCommerce, for more reliable handeling.
Installation
composer require jeffreyvanrossum/wp-job-scheduler
Usage
Setup
Within your theme or plugin, add:
WPJobScheduler::instance() ->projectRootPath(__DIR__) ->scheduler(function() { ExampleJob::schedule('hourly'); }) ->boot();
Dispatching single jobs
ExampleJob::dispatch();
You may pass a callback to do some changes on the job before it is dispatched:
ExampleJob::dispatch(function($job) { $job->withDelay(30); });
You may also pass some initial constructor arguments:
ExampleJob::dispatch(function($job) { $job->withDelay(30); }, ['foo' => 'bar']);
Example Job
class ExampleJob implements Jobable { use IsJob, Schedulable, Dispatchable; public function handle() { // the actual handling of the job } public function before(): void { // before the job has been handled } public function after(): void { // after the job has been handled } public function catch(Throwable $e): void { // do something with exception } }
Contributors
License
MIT. Please see the License File for more information.