A lightweight task scheduling and execution addon for Bear Framework. It lets you register task handlers, enqueue work items with scheduling and priority options, and process them via a runnable worker.
$app->tasks
->define('definition-id', function ($value): void {
// code
})$app->tasks
->add('definition-id', 'example-value', [
'id' => 'task-id', // optional
'listID' => '', // empty value for the default list
'startTime' => time() + 120, // start in 2 minutes
'priority' => 3, // 1 - lowest, 5 - highest
'ignoreIfExists' => true, // will check the id only
]);$app->tasks
->addEventListener('runTask', function (\BearFramework\Tasks\RunTaskEventDetails $eventDetails) use ($app) {
$app->logs->log('run-task', $eventDetails->definitionID);
})
->run([
'listID' => '',
'maxExecutionTime' => 30
]);Contributions and bug reports are welcome. Open issues or submit pull requests to the repository.
This addon is free to use under the MIT license. See the LICENSE file for details.