WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Push queue i Sverige, ish... (https://www.wn.se/forum/showthread.php?t=1061718)

Johnny Viking 2014-05-06 18:00

Push queue i Sverige, ish...
 
Jag använder Iron.io som push queue. Funkar galant, men, det är riktigt segt. Troligen för att servern ligger långt bort som ger dålig responstid.

Tanken med push queue är ju just att avlasta och få snabbare respons för slutanvändaren. Men så blir det inte just nu alls.

Tidigare körde jag Beanstalkd vilket går blixtrande fort, men, det har visat sig flera gånger hänga sig och inte göra det den ska. Samt, om skiten hänger sig, så finns det ingen som helst hantering av Beanstalkd att ta hand om misslyckade job.

Så vad kör ni för push queues, eller annan tjänst för köhantering?

Har ni några bra förslag?

CotopaXi 2014-05-06 20:22

Jag kör Celery på ett par VPS:er.

Clarence 2014-05-06 20:52

Kör Gearman och ren rabbitmq.

Johnny Viking 2014-05-07 07:54

I just detta projekt så är det Laravel och där finns ett paket för att ge support för RabbitMQ. Så det är ju en bra början.

Och att det funkar i Windows?! Verkar ju schyst då man sitter på en windows-maskin och utvecklar. Vagrant har funkat sådär på Windows-maskinen medan det är mycket stabilare på min Mac-dator. Så kan jag få tester mm att fungera på min Windows-dator vore det fantastiskt. Dock är prod i detta fall ändå en Linux...

Dock generellt, hur gör ni med hanteringen av misslyckade jobb. T.ex pga en bugg i PHP där själva skriptet slutar fungera och kön inte går vidare till nästa jobb?

jag är lite ny på det här med kösystem, så vore kul o veta hur andra praktiskt löser det. Skriver ni en egen lite backend för jobbhantering där det mellanlagras vilka jobb som är på g i kön?

Clarence 2014-05-07 12:00

Citat:

Ursprungligen postat av Johnny Viking (Inlägg 20491676)
I just detta projekt så är det Laravel och där finns ett paket för att ge support för RabbitMQ. Så det är ju en bra början.

Och att det funkar i Windows?! Verkar ju schyst då man sitter på en windows-maskin och utvecklar. Vagrant har funkat sådär på Windows-maskinen medan det är mycket stabilare på min Mac-dator. Så kan jag få tester mm att fungera på min Windows-dator vore det fantastiskt. Dock är prod i detta fall ändå en Linux...

Dock generellt, hur gör ni med hanteringen av misslyckade jobb. T.ex pga en bugg i PHP där själva skriptet slutar fungera och kön inte går vidare till nästa jobb?

Om du ska drifta i en Linux-miljö gör det stor nytta att utveckla i en sådan. Helst ska den provisioneras på precis samma sätt som live-servern (med Chef, Puppet eller annat provisionerings-verktyg). Därav är Vagrant ett väldigt bra val, även om den jävlas lite på Windows så är det värt att lägga lite tid på att fixa det om det inte tar evigheter.

Har du en PHP-process som väntar på och kör bakgrundsjobb under en större tidsperiod, t ex en Gearman worker, så bör du ha någon typ av processhantering. Själv brukar jag lägga in en koll i workern som avslutar sig själv efter ett tag (PHP är inte stabilt för riktigt långkörande processer, även om det är mycket bättre än förr) och sedan Supervisor för att starta om den. Supervisor håller även koll på att den startas om den kraschar, liksom den kan hålla koll på flera samtidiga workers. Finns även alternativ till det runit, watchdog, daemon tools osv (inte använt dom så inte 100 på att de är exakt samma).

Johnny Viking 2014-05-07 12:56

Tack. Kom på när du sa angående Supervisor som jag oxå körde för att hålla igång Beanstalkd var ju att OM Beanstalkd dör, så försvann även alla jobb...

Kikade på RabbitMQ nu men tyckte ärligt talat setupen var för svår.

Ska se om jag kan få Vagrant att ligga stabilt i en VM box på Windows. Vore ju bra som du säger så man kan ha så lika miljöer som möjligt.

Dock Vagrant har en jättegammal version av Beanstalkd. Jag lyckades inte uppdatera den. Medan på min prod-Linux så fick jag en mycket nyare version.

Sen använde jag nått gränssnitt någon hackat ihop för att få ett GUI på det hela. Men det var buggit värre oxå.

Vore ju schyst om där fanns något riktigt gediget som liksom bara fungerar och man kan lita på. Jag betalar ju gärna pengar för det...

Clarence 2014-05-07 13:07

Citat:

Ursprungligen postat av Johnny Viking (Inlägg 20491704)
Tack. Kom på när du sa angående Supervisor som jag oxå körde för att hålla igång Beanstalkd var ju att OM Beanstalkd dör, så försvann även alla jobb...

Kikade på RabbitMQ nu men tyckte ärligt talat setupen var för svår.

Ska se om jag kan få Vagrant att ligga stabilt i en VM box på Windows. Vore ju bra som du säger så man kan ha så lika miljöer som möjligt.

Dock Vagrant har en jättegammal version av Beanstalkd. Jag lyckades inte uppdatera den. Medan på min prod-Linux så fick jag en mycket nyare version.

Sen använde jag nått gränssnitt någon hackat ihop för att få ett GUI på det hela. Men det var buggit värre oxå.

Vore ju schyst om där fanns något riktigt gediget som liksom bara fungerar och man kan lita på. Jag betalar ju gärna pengar för det...

Nu har jag inte använt beanstalkd själv men kikade lite snabbt om det gick att få persistance på kön och det verkar ju som om det ska funka med deras binlog (-b). Inte så flexibelt men ska väl lösa ditt problem iallafall.

Rabbitmq är både mycket mer flexibelt och mer komplicerat. Tar säkert en hel dag att lära sig. Däremot får du lägga extra parsning ovanpå det för att få det att fungera som en jobbkö då det är bara är basen byggd för att distribuera meddelanden.

Vagrant har verkligen ingen version av Beanstalkd. Din distro du kör i Vagrant har det i sina officiella repos. Säker på att du uppdateras paketlistan? Kanske kör fel distro/version?

Givet vet jag inte heller om det finns något bra GUI för beanstalkd eftersom jag inte använt det.

Johnny Viking 2014-05-07 13:19

Det jag använt som GUI är:
https://github.com/ptrofimov/beanstalk_console

Jo sa fel om Vagrant. Kör nått förgjort skript. Precise32 nått med Apache, MySQL och PHP klart.
uname -a
Linux vagrant 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux

Så lite gammalt Ubuntu.

Vore nice med nån nya Vagrant, gärna med CentoOS och samma saker installerade då det är det jag kör på min prod-server.

Johnny Viking 2014-05-07 13:36

Ska testa lite olika vagrant-setuper så får vi se om jag hittar något som duger.

Vore ju kul om man fick till en stabil lokal köhanterare.

Clarence 2014-05-07 15:03

Citat:

Ursprungligen postat av Johnny Viking (Inlägg 20491708)
Det jag använt som GUI är:
https://github.com/ptrofimov/beanstalk_console

Jo sa fel om Vagrant. Kör nått förgjort skript. Precise32 nått med Apache, MySQL och PHP klart.
uname -a
Linux vagrant 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux

Så lite gammalt Ubuntu.

Vore nice med nån nya Vagrant, gärna med CentoOS och samma saker installerade då det är det jag kör på min prod-server.

Det bästa är att du kör en basebox med CentOS isåfall och sedan en konfigurations-hanterare, även om det är hemmaknackade shellscript (själv gillar jag Chef). Då kan du provisionera produktions-servern på precis samma sätt och du får därmed inte en ständig diskrepans i konfiguration att ta hänsyn och överaskas av. Nytt populärt alternativ är Docker-containers (finns inbyggt stöd i senaste Vagrant som släpptes nyligen) men kommer också kräva en hel del förändringar i driftmiljön isåfall.


Alla tider är GMT +2. Klockan är nu 15:23.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson