briedis Posted May 2, 2016 Report Share Posted May 2, 2016 Kādus rīkus izmantojat, lai darbinātu dinamiskā daudzumā kaut kādus workerus, kas pilda darbu rindas (ar prioritātēm utt). Gearman, Amazon SQS,.. ? Quote Link to comment Share on other sites More sharing options...
codez Posted May 2, 2016 Report Share Posted May 2, 2016 Akka Quote Link to comment Share on other sites More sharing options...
briedis Posted May 2, 2016 Author Report Share Posted May 2, 2016 eh JVM gan negribas darbināt, bet nu skaidrs, scala, scala.. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 2, 2016 Report Share Posted May 2, 2016 RabbitMQ. Uz Erlang, skaties vai gribi darbināt... Quote Link to comment Share on other sites More sharing options...
Wuu Posted May 2, 2016 Report Share Posted May 2, 2016 Kaut kad savām vajadzībām meklēju, RabbitMQ izskatījās ok. Bet tā arī nepamēģināju, lūdzu informē par gala rezultātu. Quote Link to comment Share on other sites More sharing options...
yuppio Posted May 2, 2016 Report Share Posted May 2, 2016 (edited) uz nodes izmantojam Kue Edited May 2, 2016 by yuppio Quote Link to comment Share on other sites More sharing options...
F3llony Posted May 2, 2016 Report Share Posted May 2, 2016 + RabbitMQ. Ja runa ir par PHP un maza/vidēja izmēra stuff, man ir projekts kas izmanto https://github.com/rybakit/phive-queuear MongoDB kā storage. 1-5 queue events sekundē, darbojas normāli un viegli integrējams. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted May 2, 2016 Report Share Posted May 2, 2016 while (1) { query("SELECT * FROM `jobs` LIMIT 1"); }Prioritāti piekodē pats. Quote Link to comment Share on other sites More sharing options...
Kasspars Posted May 2, 2016 Report Share Posted May 2, 2016 (edited) Nosauciet kādu, piemēru, kur reāli vajag rindas menedžeri "kā ēst"? Pats parasti izmantoju cron job. Visam pietiek. Edited May 2, 2016 by Kasspars Quote Link to comment Share on other sites More sharing options...
codez Posted May 2, 2016 Report Share Posted May 2, 2016 Nosauciet kādu, piemēru, kur reāli vajag rindas menedžeri "kā ēst"? Pats parasti izmantoju cron job. Visam pietiek. Tipiskākais ir loggeris, kuram nāk log mesidži no visām vietām un viņš rindiņā visus apstrādā, pieglabā, kur vajag un paziņo, ja kaut kas nav kā vajag. Es vēl bieži izmantoju, lai kaut ko saglabātu. Teiksim atnāk pieprasījums uz kontrolera ekšanu un tajā kaut kas jāsaglabā datu bāzē, tad nu es aizmetu mesidžu aktoram, kurš to apstrādā un noglabā, bet kontroleris var turpināt darbu un uzreiz atbildēt klientam. Quote Link to comment Share on other sites More sharing options...
briedis Posted May 2, 2016 Author Report Share Posted May 2, 2016 Nosauciet kādu, piemēru, kur reāli vajag rindas menedžeri "kā ēst"? Pats parasti izmantoju cron job. Visam pietiek. Mums ir 2 (ar pus) serveri, kas: 1. apstrādā dažādas rindas darbus 2. ir ar dažādu jaudu (attiecīgi dažāds workeru skaits uz katrs) 3. ir +- 20 dažādi jobi, kur katram variē workeru skaits, izpildes intervāli utt. Sūtam kampaņu epastus, apstrādājam attēlus, syncojam N dažādu e-veikalu datus, izpildam maksājumus, apstrādājam ienākošos webhookus, lejuplādējam failus, sūtam failus uz printeriem. Karoč, good luck to visu ar crontabu :) Mums nepieciešama arī objektu lockošana, un bombīt DB visu laiku nav diez ko forši un skeilojami... Ja par crontab, tad neskaitot screen procesus, uz viena servera ir padsmit, uz otra ir kkur 60 cronjobi. Izklausās, ka izmēģināsim RabbitMQ.. Quote Link to comment Share on other sites More sharing options...
Kasspars Posted May 2, 2016 Report Share Posted May 2, 2016 Pa lielam jūs rindas mg izmantojat, lai uzlabotu klienta responsi? Visus garos darbus nogrūžat uz backend Quote Link to comment Share on other sites More sharing options...
briedis Posted May 2, 2016 Author Report Share Posted May 2, 2016 Pa lielam jūs rindas mg izmantojat, lai uzlabotu klienta responsi? Visus garos darbus nogrūžat uz backend Nu jā, daudzi darbi nemaz neprasa minūtes izpildi. Iedomājies, ielādē tagad vienu failu un gaidi, kad thumbnails ģenerēsies veselu minūti. Ar workeri pāris sekundes. Un kas notiktu, kad ielādē 100, 200 failus rindā kādi 20 cilvēki... Protams, ka ar cronu to var atrisināt, bet tiklīdz jāmenedžē N workeri, lai tos varēt dinamiski pielikt, noņemt, un vajag normālu atbildes laiku - nekas tur smuks nesanāks... Quote Link to comment Share on other sites More sharing options...
Kasspars Posted May 2, 2016 Report Share Posted May 2, 2016 Ar rindas mg arī viss vairāk real-time sanāk. Tikko kaut kas ienāk rindā, tā tiek dota komanda apstrādāt. Ar cron tomēr ir aizture. Ja laižās reizi minūtē, tad kā minimums tā minūte būs aizture Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted May 2, 2016 Report Share Posted May 2, 2016 while (1) { query("SELECT * FROM `jobs` LIMIT 1"); }Prioritāti piekodē pats. Ar PHP 7 varbūt šis jau ir lietojams, bez iespējas, ka kaut kas vienkārši apstājas bez nekāda kļūdas paziņojuma. ;) Un bez pauzītes šis baigi noceps procesoru. Kas notiks, ja viens jobs uzkārsies, piemēram, dēļ buga "Fatal Error: method very_rarely_if_ever_used_method() not defined"? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.