bearframework/tasks-addon

Tasks addon for Bear Framework

Installs: 1 985

Dependents: 5

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/bearframework/tasks-addon

v1.5.0 2025-01-05 00:33 UTC

README

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.

Snippets

Define task (register handler)

$app->tasks
    ->define('definition-id', function ($value): void {
        // code
    })

Add task

$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
    ]);

Run tasks

$app->tasks
    ->addEventListener('runTask', function (\BearFramework\Tasks\RunTaskEventDetails $eventDetails) use ($app) {
        $app->logs->log('run-task', $eventDetails->definitionID);
    })
    ->run([
        'listID' => '',
        'maxExecutionTime' => 30
    ]);

Contributing

Contributions and bug reports are welcome. Open issues or submit pull requests to the repository.

License

This addon is free to use under the MIT license. See the LICENSE file for details.