[英]PHP-Resque won't run perform()
我正在使用PHP-Resque ,並且無法使perform()方法正常工作。 誰能告訴我我所缺少的嗎?
這是我的設置:
$ php workers.php
$ redis-cli monitor
$ php create.php
(創建工作)
workers.php
<?php putenv("VVERBOSE=1"); putenv("LOGGING=1"); putenv("QUEUE=* php bin/resque"); require_once APPPATH . '../vendor/chrisboulton/php-resque/bin/resque';
create.php
<?php $jobId = Resque::enqueue('JESSE', 'Dog', ['hey'], true); echo "JobId: $jobId\\n"; $status = new Resque_Job_Status($jobId); if ($status->isTracking()) { echo "\\nStatus: " . $status->get(); }
我總是得到JobId和Status為1。例如:
JobId: 757335754aec172166e8679cc3bfef58
Status: 1
我總是得到一個已插入的Redis日志。 例如:
[2 127.0.0.1:38912] "sadd" "resque:queues" "JESSE"
[2 127.0.0.1:38912] "rpush" "resque:queue:JESSE" "{\"class\":\"Dog\",\"args\":[[\"hey\"]],\"id\":\"757335754aec172166e8679cc3bfef58\"}"
[2 127.0.0.1:38912] "set" "resque:job:757335754aec172166e8679cc3bfef58:status" "{\"status\":1,\"updated\":1398269884,\"started\":1398269884}"
[2 127.0.0.1:38912] "exists" "resque:job:757335754aec172166e8679cc3bfef58:status"
但是它似乎根本沒有運行perform()方法:
class Dog {
public function perform()
{
echo 'TEST TEST TEST TEST';
fwrite('/tmp/resque-output.txt', 'This is running', w);
fwrite(STDOUT, 'Start job! -> ');
sleep(1);
fwrite(STDOUT, 'Job ended!' . PHP_EOL);
}
}
可以肯定的是:
putenv("QUEUE=* php bin/resque");
那應該是:
putenv("QUEUE=*");
第二部分是啟動resque的命令,您正在執行不同的操作。 就目前而言,它正在尋找一個隊列* php bin/resque
而不是所有隊列( *
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.