chrisvaughn / faktory_worker_php
PHP 的 Faktory 作业队列库。
v1.1.2
2024-05-22 17:55 UTC
Requires
- php: ^7.1
Requires (Dev)
- overtrue/phplint: 3.4.0
- phpunit/phpunit: ^9
README
Faktory 是 PHP 的作业队列库。
支持的 Faktory 版本
- 1.7.0
可能在早期版本上也能工作,但未经过测试。
安装/使用
使用 Composer 安装此包
composer require chrisvaughn/faktory_worker_php
推送作业
use FaktoryQueue\FaktoryClient; use FaktoryQueue\FaktoryJob; $client = new FaktoryClient('localhost', '7419', 'optionalpassword'); $job1 = new FaktoryJob('cooljob', [ 1, 2 ]); $job2 = new FaktoryJob('cooljob2', [ 3, 4 ]); $client->push($job1); $client->push($job2);
计划任务
您也可以在将作业推送到队列的同时计划作业的运行时间。以下是一些示例
$client = new FaktoryClient('faktory', '7419'); $job1 = new FaktoryJob('CoolJob1', [ 1, 2 ]); $job2 = new FaktoryJob('CoolJob2', [ 3, 4 ]); $job3 = new FaktoryJob('CoolJob3', [ 5, 6 ]); $job4 = new FaktoryJob('CoolJob4', [ 7, 8 ]); $job5 = new FaktoryJob('CoolJob5', [ 9, 10 ]); $job1->inSeconds(300); $job2->inMinutes(15); $job3->inHours(24); $date = date(DATE_RFC3339, strtotime('+5 days')); $job4->at($date); $client->push($job1); $client->push($job2); $client->push($job3); $client->push($job4); $client->push($job5);
启动一个监听作业的工人
use FaktoryQueue\FaktoryClient; use FaktoryQueue\FaktoryWorker; $client = new FaktoryClient('localhost', '7419', 'optionalpassword'); $worker = new FaktoryWorker($client); $worker->register('cooljob', function($job) { echo "something cool: ".$job['args'][0].' '.$job['args'][1]."\n"; }); $worker->register('cooljob2', function($job) { echo "This is cooler: ".$job['args'][0].' '.$job['args'][1]."\n"; }); $worker->run();