[英]php-resque job perform function not executed?
我正在嘗試使用php-resque進行后台工作。 我有以下代碼:
\Resque::setBackend('127.0.0.1:6379');
\Resque::enqueue('default', '\BaseModule\Jobs\Mail', array());
在郵件班級我有這個
class Mail
{
public function perform()
{
lakdf;
}
}
“ lakdf;”上的錯誤 是故意的。
當我在redis上打開Monitor並嘗試執行作業時,請輸入以下內容:
1387283121.312817 [0 127.0.0.1:32827] "set" "resque:worker:michal-pc:9622:default" "{\"queue\":\"default\",\"run_at\":\"Tue Dec 17 12:25:21 UTC 2013\",\"payload\":{\"class\":\"\\\\BaseModule\\\\Jobs\\\\Mail\",\"args\":[[]],\"id\":\"c7c64e218bc951018c2a264eaf5a4b9a\"}}"
1387283121.313312 [0 127.0.0.1:32827] "incrby" "resque:stat:processed" "1"
因此,從“ reque:stat:processed”開始,我認為我的工作已處理完畢,但是Perform函數中有一個錯誤,並且未寫入任何錯誤,例如Perform函數從未執行過。
即使我在執行功能中對數據庫進行了一些插入,也不會執行任何操作。
有人知道,哪里出了問題? 為什么似乎執行功能未執行?
PHP將假設
lakdf;
是:
$lakdf;
因此,如果您確實希望引發錯誤,則可以通過以下方式替換該行來強制執行一個錯誤:
error_log("I am throwing an error from within the Mail::perform function");
希望這將對單個命令有所幫助:
$command = 'php ' . 'background_process_autoresponder.php';
$a = shell_exec(sprintf('%s > /dev/null 2>&1 &', $command));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.