burriko / job-queue
使用Beanstalk处理作业的库。
0.1.0
2015-08-28 13:42 UTC
Requires
- php: >=5.4.0
- pda/pheanstalk: ^3.0
- psr/log: ^1.0
Requires (Dev)
- phpunit/phpunit: ^4.7
This package is not auto-updated.
Last update: 2024-09-18 09:29:16 UTC
README
这是一个正在进行的库,用于轻松地将作业推送到队列中,以便在Web请求之外进行处理。目前仅支持Beanstalk队列。API将在v1之前经常更改。
用法
首先,您需要创建一个队列的实例。
$pheanstalk = new Pheanstalk\Pheanstalk('localhost');
$queue = new JobQueue\BeanstalkQueue($pheanstalk, 'email_queue');
创建作业
然后,您可以将作业推送到队列。
$job = new JobQueue\Job('EmailClient', ['client_id' => $id]);
$queue->push($job);
这假设您有一个名为 EmailClient 的类,其中有一个名为 handle 的方法,该方法接受一个名为 client_id 的参数。当作业从队列中检索并执行时,将会调用此方法。
处理队列
这将监听新作业被推送到队列,然后执行它们。
$runner = new JobQueue\JobRunner();
$worker = new JobQueue\QueueWorker($queue, $runner);
$worker->processQueue();
要仅处理下一个作业,您可以这样做。
$worker->processNextJob();
您可以通过传递一个实现psr/log的日志记录器来查看QueueWorker正在做什么。
$runner = new JobQueue\JobRunner();
$logger = new Monolog\Logger('queue');
$worker = new JobQueue\QueueWorker($queue, $runner, $logger);