rybakit / phive-task-queue
基于 rybakit/phive-queue 的轻量级任务队列
v0.3.0
2014-08-05 08:15 UTC
Requires
- php: >=5.4.0
- psr/log: ~1.0
- rybakit/phive-queue: ~1.0@dev
This package is auto-updated.
Last update: 2024-09-10 12:28:47 UTC
README
一个基于 Phive Queue 的工作/任务队列。
安装
推荐通过 Composer 安装 Phive Task Queue
$ composer require rybakit/phive-task-queue:~1.0@dev
使用示例
// worker.php use Monolog\Logger; use Monolog\Handler\StreamHandler; use Phive\Queue\SysVQueue; use Phive\TaskQueue\ExecutionContext; use Phive\TaskQueue\Executor; use Phive\TaskQueue\ExecutorAdapter\CallableExecutorAdapter; // create a queue // see a list of available queues: https://github.com/rybakit/phive-queue#queues $queue = new SysVQueue(0xDEADBEAF, true); // create a logger // can be any PSR-3 compliant logger $logger = new Logger('worker'); $logger->pushHandler(new StreamHandler(STDOUT, Logger::INFO)); // create a callback $callback = function ($payload, LoggerInterface $logger) { $logger->info(strrev($payload)); }; $adapter = new CallbackExecutorAdapter(new DirectCallbackResolver($callback)); $context = new ExecutionContext($queue, $logger); $executor = new Executor($adapter, $context); // main loop while (true) { if (!$executor->execute()) { sleep(1); } }
// client.php use Phive\Queue\SysVQueue; $queue = new SysVQueue(0xDEADBEAF, true); // send a payload object to the queue and delay execution for 5 seconds // see supported item types: https://github.com/rybakit/phive-queue#item-types $queue->push('Hello world!', '+5 seconds');
许可证
Phive Task Queue 在 MIT 许可证下发布。有关详细信息,请参阅捆绑的 LICENSE 文件。