Domanda

consiglieresti di usare beanstalkd [ http://kr.github.com/beanstalkd/ ] per

elaborazione asincrona in PHP?

Ho bisogno di alcuni feedback / commenti pro-contro, da chiunque abbia usato questa lib.

Grazie,

È stato utile?

Soluzione

Ho usato Beanstalk in produzione, e anche durante i test ho lanciato milioni di semplici messaggi attraverso di essa - generalmente in massa, ma il sistema di produzione ha superato le 100.000 attività fino a quando ho lasciato l'azienda. Potrebbe essere ancora in esecuzione, nel qual caso sarebbero decine di milioni adesso - o più, se avessero esteso il suo uso ulteriormente, come avevo pianificato.

Lo consiglierei, dato che ha una serie di punti eccellenti.

  • I tubi denominati possono essere utilizzati per limitare i lavori consegnati. Guardo un tubo basato sul nome host della macchina, che limitava la posizione di un lavoratore, utile per i file caricati che sono memorizzati solo su un determinato server).
  • I ritardi possono essere utilizzati per impostare eventi futuri
  • Le ultime versioni del server supportano anche il bin-logging, dando persistenza, anche se non mi è mai andato in crash.

Il mio primo compito che ho svolto è stato l'elaborazione delle immagini - e fare quel lavoro al di fuori di un processo Apache / mod_php mi ha permesso di ridimensionare le immagini più grandi senza influenzare il server (facendo saltare il Webserver). Con una coda leggermente caricata, aveva creato le anteprime prima che la pagina si aggiornasse dopo il caricamento.

Esistono molte altre attività potenziali che potrebbero anche essere elaborate in modo asincrono.

L'unico problema che ho mai avuto è stato assicurarmi che i lavoratori si completassero senza incidenti o che fossero stati rilevati eventuali errori in modo che il lavoro potesse essere "seppellito", garantendo così che il lavoro non fosse rimesso in coda per essere eseguito di nuovo (e far arrestare di nuovo il lavoratore).

Anche il riavvio dei lavoratori per cancellare la memoria può essere utile poiché PHP è meno adatto ai processi di lunga durata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top