2013-12-17 2 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-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/16031606) – Toby

+0

Я только что зарегистрировался в потоке стека, но моя работа exp более 6 лет, надеюсь, скоро я увеличу свою репутацию, спасибо за ваш отзыв –

Смежные вопросы