Definiti graficele de dependenta ale joburilor Sidekiq
Prezentare generala
Sidekiq Superworker va permite sa creati super-lucratori, care sunt grafice simple sau complexe ale lucratorilor Sidekiq.
De exemplu, puteti defini graficele complexe ale lucratorilor si puteti utiliza atat configuratii lucratoare seriale, cat si paralele:
(Worker10 va rula dupa ce Worker5, Worker7, Worker8 si Worker9 au finalizat toate.)
Si il puteti rula ca orice alt lucrator:
De asemenea, puteti defini secvente seriale simple ale lucratorilor:
Instalare
Includeti-l in fisierul dvs. Gem:
Utilizare
Mai intai, definiti un super-lucrator intr-un fisier inclus in timpul initializarii aplicatiei. Daca utilizati Rails, puteti face acest lucru intr-un initializator:
Pentru a rula un super-lucrator, apelati perform_async:
Argumente
Puteti defini orice numar de argumente pentru super-lucrator si le puteti transmite diferitilor sub-lucratori dupa cum doriti:
Daca doriti sa setati argumente statice pentru sub-lucratori, puteti face acest lucru folosind orice valori care nu sunt simboluri (de exemplu siruri, numere intregi, etc):
Daca un sub-lucrator nu ia niciun argument, va trebui sa includeti paranteze dupa acesta:
Muncitori cu spatii de nume
Pentru a va referi la un lucrator cu spatiu de nume (de exemplu, MyModule :: Worker1), inlocuiti cele doua puncte cu doua puncte de subliniere:
Optiuni
Stergeti subiectii dupa finalizarea superlucrului
Atunci cand o superlucrare este pusa in coada, sunt create inregistrari pentru toti subiectii sai. In mod implicit, aceste inregistrari sunt sterse dupa finalizarea superlucrarii. Acest lucru poate fi modificat setand urmatoarea optiune la fals:
Expirare superjob
Cand un subiect moare din cauza prea multor reincercari, lucrarile care depind de acesta nu vor rula niciodata si superlucrarea nu va fi niciodata finalizata. In consecinta, tastele Redis nu vor fi niciodata eliminate. Puteti seta superjob_expiration la N pentru a face ca tastele subjobs sa expire in N secunde. Valoarea implicita este zero (tastele nu vor expira niciodata).
Logare
Pentru a facilita depanarea, Sidekiq Superworker furnizeaza mesaje jurnal detaliate atunci cand jurnalul sau este setat la nivelul DEBUG:
Monitorizarea
Utilizarea sidekiq_monitor cu Sidekiq Superworker este incurajata, deoarece va permite sa monitorizati cu usurinta cand ruleaza un superjob, cand a terminat, daca a intampinat erori si starea tuturor subiectilor sai.
Locuri de munca in lot
Utilizand un bloc de loturi, puteti crea loturi de subjoburi care sunt toate asociate cu superjob.
tias putas abuelas españolas follando
sexo guarro correte dentro
coños bonitos todoporno
megan montaner follando pajotes
peludas porno las mejores folladas
porno casero colombiano viejasxxx
se follan a su mujer españolas peludas
negras tetonas guarras.com
peliculas x vintage comicxxx
orgia porno español porno torrent
videos chicas gratis porno peludas
videos caseros españa madresxxx
españolas peludas pilladas playa
anal interacial videos xxxxx
tias corriendose sexo en directo
masturbacion en grupo madura tetona
el video porno mas visto en internet corriendose dentro
asiatica forzada mamadas de abuelas
presentadoras desnudas porno canario
videos sexo porno online gratis
Urmatoarele vor rula Worker1 si Worker2 in serie pentru fiecare ID de utilizator din matricea transmisa perform_async.
De asemenea, puteti utiliza mai multe argumente:
Cele de mai sus produc o secventa echivalenta cu aceasta (lucratorii ruleaza in serie):
Gruparea lucrarilor in loturi va imbunatateste foarte mult capacitatea de a le audita si de a determina cand loturile au terminat.
Nume Superjob
Daca utilizati sidekiq_monitor si doriti sa setati un nume pentru un superjob, il puteti seta intr-un argument suplimentar, astfel:
Erori
Daca un subjob intalneste o exceptie, subjob-urile care depind de acesta nu vor rula, dar restul subjob-urilor vor continua ca de obicei.
Daca se foloseste sidekiq_monitor, exceptia va fi ridicata la superjob, ceea ce va permite sa vedeti cu usurinta cand superjob-urile dvs. au esuat.
Note de actualizare
Actualizarea de la 1.0.x la 1.1.x in timp ce utilizati Sidekiq Monitor
Daca utilizati Sidekiq Monitor, ati folosit anterior Sidekiq Superworker 1.0.x si faceti upgrade la 1.1.x, ar trebui sa stiti ca strategia de stocare a ID-urilor de subiecti s-a schimbat. Inainte de a face upgrade, ar trebui sa lasati toti super-lucratorii sa termine, apoi sa efectuati upgrade, apoi sa reluati executarea super-lucratorilor. Pentru super-joburi care au functionat inainte de upgrade, relatia dintre superjobs si subjobs nu va mai fi afisata in unele parti ale interfetei de utilizare. Daca nu utilizati Sidekiq Monitor, puteti face upgrade fara nicio intrerupere.
Actualizarea de la 0.x la 1.x
Daca ati folosit anterior Sidekiq Superworker 0.x si faceti upgrade la 1.x, exista cateva modificari de care sa fiti constienti:
Redis a inlocuit ActiveRecord
ActiveRecord a fost folosit ca depozit de date in 0.x din cauza cerintelor specifice aplicatiei, dar Redis este o alegere mult mai buna din mai multe motive, mai ales avand in vedere ca Sidekiq foloseste Redis. Cand faceti upgrade la 1.x, va trebui sa lasati toate super-joburile dvs. finalizate, apoi sa faceti upgrade la 1.x, apoi sa reluati rularea superjob-urilor. Daca doriti, puteti renunta la tabelul „sidekiq_superworker_subjobs”.
Superworker.define a inlocuit Superworker.create
Numele metodei Superworker.create a provocat confuzie, deoarece unii utilizatori ar numi-o de mai multe ori. Deoarece defineste o clasa, a fost redenumita Superworker.define. Va trebui sa-l inlocuiti corespunzator.
Testarea
Sidekiq Superworker este testat impotriva mai multor seturi de dependente de bijuterii (in prezent: fara pietre pretioase, Rails 3 si Rails 4), asa ca va rugam sa efectuati testele cu Appraisal inainte de a trimite un PR. Multumiri!
Licenta
Sidekiq Superworker este lansat sub licenta MIT. Va rugam sa consultati fisierul MIT-LICENSE pentru detalii.








