2013-12-17 83 views
14

我想用php-resque做一個後臺工作。我有這樣的代碼:php-resque作業執行功能未執行?

\Resque::setBackend('127.0.0.1:6379'); 
\Resque::enqueue('default', '\BaseModule\Jobs\Mail', array()); 

和郵件類我有這個

class Mail 
{ 

    public function perform() 
    { 
      lakdf; 
    } 
} 

上的錯誤 「lakdf;」在這裏是故意的。

當我打開監視器上我的Redis和嘗試執行工作是這樣寫:

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:統計:加工」我想,我的工作是處理,但有執行函數中的一個錯誤,並且它不寫任何錯誤,就像執行函數從不執行一樣。

即使我在執行函數中插入一些數據庫,它也不會執行任何操作。

有誰知道,問題在哪裏?爲什麼看起來執行功能沒有執行?

+0

您使用的是什麼版本的PHPResque? – mloureiro

+0

我有很好的fealeeng,你的PHP函數不支持這個或模塊丟失。請給我們您的版本。 –

回答

1

PHP會認爲

lakdf; 

是:

$lakdf; 

所以,如果你真的想拋出一個錯誤,那麼你可以通過替換該行力之一:

error_log("I am throwing an error from within the Mail::perform function"); 
-1

希望能幫到一點命令:

$command = 'php ' . 'background_process_autoresponder.php'; 
$a = shell_exec(sprintf('%s > /dev/null 2>&1 &', $command)); 
+0

這不提供問題的答案。一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將能夠[評論任何職位](http://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/16031606) – Toby

+0

我剛剛註冊過堆棧流程,但我的工作期限已超過6年,希望很快我會提高我的聲譽,感謝您的審查 –