14

私はphp-resqueでバックグラウンドジョブを作ろうとしています。私はこのコードを持っています:

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

そしてMailクラスで私はこれを持っています

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:stat:processed」から、ジョブは処理されたと思いますが、実行関数に誤りがあり、実行関数が実行されないなど、エラーが書き込まれません。

実行機能でデータベースに挿入しても、何もしません。

誰が知っていますか、どこに問題がありますか? perform 関数が実行されていないように見えるのはなぜですか?

4

2 に答える 2

1

PHP は、

    lakdf;

は:

$lakdf;

したがって、本当にエラーをスローしたい場合は、その行を次のように置き換えることで強制できます。

error_log("I am throwing an error from within the Mail::perform function");
于 2016-07-18T10:47:01.673 に答える