sinevia/php-library-sqldb-tasks

该包最新版本(v1.5.0)没有可用的许可证信息。

PHP SqlDb 任务

v1.5.0 2019-06-22 09:31 UTC

This package is auto-updated.

Last update: 2024-09-22 22:33:07 UTC


README

SqlDb 的持久性任务队列。

Build status GitHub stars HitCount

功能

  • 异步(多线程/进程)或同步(单个线程/进程)执行
  • 即时(由创建任务的代码)或由其他进程执行队列
  • 详细记录
  • 可检查、可调试
  • 可重试

它如何工作?

  • 任务。 任务在任务表中定义。每个任务定义一个处理类。处理类有一个 handle($parameters) 方法,用于处理任务,并在成功时返回 true,否则返回 false。

  • 队列。 要处理的任务及其参数添加到队列表中。然后按顺序处理每个任务,通过调用处理类的 handle 方法,该方法也接收参数。根据结果,队列任务将被标记为成功完成,否则标记为失败。

快速示例

$task = \Sinevia\Tasks\Task::queue('\App\Tasks\PaypalOrderTask', $parametersArray);

if ($task == null){
    logger()->error('Task "\App\Tasks\PaypalOrderTask" failed to be created', $parametersArray);
    return false;
}

$result = \Sinevia\Tasks\Queue::processQueuedTaskById($task->get('Id'));
return $result;

任务处理器

class HelloWorldTask extends \Sinevia\Tasks\BaseHandler {
    function handle(array $parameters){
        $this->queuedTask->addDetails('Adding Hello World to Output Parameters');
        
        $this->queuedTask->setOutputKey('hello','world');
        
        return true;
    }
}