Próbuję zrobić pracę w tle z php-resque. Mam ten kod:Wykonanie zadania php-resque nie zostało wykonane?
\Resque::setBackend('127.0.0.1:6379');
\Resque::enqueue('default', '\BaseModule\Jobs\Mail', array());
aw klasie mail mam ten
class Mail
{
public function perform()
{
lakdf;
}
}
Pomyłka na "lakdf;" jest tutaj celowo.
Po włączeniu monitora na moich REDiS i spróbuj wykonać zadanie to napisać tak:
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"
Więc z „reque: stat: Przetworzone” Myślę, że moja praca została przetworzona, ale jest błąd w funkcji wykonania i nie zapisujący żadnego błędu, jak funkcja wykonania nigdy nie jest wykonywana.
Nawet jeśli wstawię jakąś wstawkę do bazy danych w funkcji perform, to nic nie zrobi.
Czy ktoś wie, gdzie jest problem? Dlaczego wydaje się, że funkcja wykonania nie jest wykonywana?
Jaką wersję PHPResque używasz? – mloureiro
Mam dobry fealeeng, że twoja funkcja PHP nie obsługuje tego lub modułu brakuje. Daj nam swoją wersję, proszę. –