2010-07-11 2 views
8

Sto provando delayed_job ora e ho alcune domande.Alcune domande di base su 'delayed_job'

Dalla pagina http://github.com/collectiveidea/delayed_job, posso vedere alcune informazioni:

lavoratori può essere in esecuzione su qualsiasi computer , a patto che essi hanno accesso al database e il loro orologio è in sincronia. Tieni presente che ogni lavoratore controllerà il database almeno ogni 5 secondi.

  1. Quando invoco rake jobs:work una volta, si creerà ONE lavoratore, giusto?

  2. Quando un lavoratore controlla il database, si leggerà TUTTI nuove e falliti compiti OGNI VOLTA, ed eseguirli?

  3. dice che un operaio controllerà il database ogni 5 secondi, posso farlo 2 secondi?

  4. Quando creo un lavoratore (rake jobs:work), ci sono già 10 attività nel database e ognuna richiede 3 secondi. Quanti processi creerà DelayedJob? E quanti secondi hanno bisogno in totale?

risposta

13
  1. Delayed::Worker.sleep_delay = 2
  2. 1 lavoratore lavorerà su ogni attività, a sua volta, passa o non prima di andare al prossimo. 30 secondi in totale + tuttavia 9 lunghi ritardi per il tempo totale (45 secondi per impostazione predefinita). Non sono sicuro di come rispondere alla tua domanda sui processi. Viene creato 1 lavoratore, che è un processo. Zero o più altri processi possono essere creati, a seconda di quale sia il lavoro da eseguire.
+0

@ x1a4, grazie. E potresti vedere la mia domanda aggiornata, c'è ancora una domanda :) – Freewind

+0

C'è comunque la possibilità di accelerare? Voglio dire, questi compiti possono essere eseguiti in parallelo? – Freewind

+0

eseguire più lavoratori – x1a4