Задание 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"

Таким образом, из "требуемого: обработанного" я ​​думаю, что моя работа была обработана, но есть ошибка в функции выполнения, и она не записывает никаких ошибок, как, например, функция выполнения никогда не выполняется.

Даже если я сделаю некоторую вставку в базу данных в функции выполнения, она ничего не сделает.

Кто-нибудь знает, где проблема? Почему кажется, что функция выполнения не выполняется?

2 ответа

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));
Другие вопросы по тегам