簡體   English   中英

php-resque作業執行功能未執行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM