sinevia / php-library-sqldb-tasks
该包最新版本(v1.5.0)没有可用的许可证信息。
PHP SqlDb 任务
v1.5.0
2019-06-22 09:31 UTC
Requires
- sinevia/php-library-sqldb: >=v3.6.2
- sinevia/php-library-uid: >=v1.0.0
Requires (Dev)
- bafs/testify: ^1.0
README
SqlDb 的持久性任务队列。
功能
- 异步(多线程/进程)或同步(单个线程/进程)执行
- 即时(由创建任务的代码)或由其他进程执行队列
- 详细记录
- 可检查、可调试
- 可重试
它如何工作?
-
任务。 任务在任务表中定义。每个任务定义一个处理类。处理类有一个 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;
}
}