2013-08-14 3 views
12

Occasionalmente utilizzo forever.js per la distribuzione rapida e sporca di applicazioni Node.js di tipo CLI in ambienti di produzione in cui non si desidera eseguire una distribuzione completa su supervisord.Esiste un equivalente forever.js per PHP per l'esecuzione continua dei miei script?

Mi chiedevo se esistesse un equivalente per PHP? Al momento disponiamo di un sistema di elaborazione della coda che riceve i messaggi da SQS e li elabora in modo sincrono in un database (non può essere eseguito in modo asincrono in quanto provoca tutti i tipi di problemi di blocco delle righe in questo particolare caso d'uso). Al momento corre sempre minuto usando cron, ma spesso finisce presto e voglio che ricominci a correre. Non posso avere più di un processo in esecuzione alla volta.

Qualsiasi idea di comando/software/bash di tipo * nix è la benvenuta.

+6

Perché non utilizzare forever.js per avviare lo script PHP? – quentinadam

+0

doh! non ha pensato che ci proveremo. –

risposta

26

Basta usare forever con lo script php (utilizzare l'argomento -c per istruire sempre per usare php):

$ cat test.php 
<?php 
sleep(3); 
print("foobar\n"); 
exit; 
?> 
$ forever -c php test.php 
foobar 
error: Forever detected script was killed by signal: null 
error: Forever restarting script for 1 time 
foobar 
error: Forever detected script was killed by signal: null 
error: Forever restarting script for 2 time 
... 
+0

Amico, non avevo idea che tu potessi fare questo. Questo risolve il mio problema. Grazie! –

+2

santo schifo davvero ?? è fantastico! – RedactedProfile

+0

Questo è onestamente pazzo! dove devo donare per il progetto? !! –

2

Ho appena scoperto questo strumento supervisord e funziona benissimo. Ho usato questo ratchet tutorial per farlo funzionare in pochi minuti!

Se ricordo correttamente lo script per sempre non si riavvia quando si riavvia il server?

+0

Usiamo supervisord da circa 8 mesi ed è fantastico, in realtà usiamo in combo con 'foreverd'. Tuttavia, poiché quasi tutti i nostri elementi si spostano nella finestra mobile, in realtà ci siamo trovati a utilizzare strumenti di demonizzazione incorporati nella finestra mobile, ad es .: '-d --restart = always' –

Problemi correlati