2013-12-17 17 views
14

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?

+0

Jaką wersję PHPResque używasz? – mloureiro

+0

Mam dobry fealeeng, że twoja funkcja PHP nie obsługuje tego lub modułu brakuje. Daj nam swoją wersję, proszę. –

Odpowiedz

1

PHP zakłada, że ​​

lakdf; 

jest:

$lakdf; 

Więc jeśli naprawdę chcesz błąd zostać wyrzucony wtedy można wymusić jedną zastępując ten wiersz z:

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

Nadzieja, która pomoże w jednym poleceniu:

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

Nie zapewnia to odpowiedzi na pytanie. Po uzyskaniu wystarczającego [reputation] (http://stackoverflow.com/help/whats-reputation) będziesz mógł [komentować dowolny wpis] (http://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ opinia/niskiej jakości-posty/16031606) – Toby

+0

Właśnie zarejestrowałem przepływ w stosach, ale moje exp pracy jest ponad 6 lat, mam nadzieję, że wkrótce zwiększę swoją reputację, dziękuję za recenzję –

Powiązane problemy