software1987 Tech-Blog

11Mrz/116

beanstalkd unter Windows mit Cygwin

Vor ein paar Tagen bin ich auf beanstalkd aufmerksam geworden. Beanstalkd ist eine Warteschlange, welche man nutzen kann um Arbeitsaufgaben einzustelen und an anderer Stelle wieder abzuarbeiten. Ein passendes Beispiel ist das Hochladen und Konvertieren von Videos in einer Webapplikation. Nachdem der Upload fertig gestellt ist, möchte man den Benutzer nicht warten lassen, bis sein Video in ein anderes Format konvertiert worden ist. Man stellt also nach dem Upload eine Arbeitsaufgabe in die Warteschlange und kann dem Benutzer danach auf eine andere Seite verweisen. Ein anderer Prozess nimmt die Arbeitsaufgabe aus der Warteschlange entgegen und bearbeitet diese.

Beanstalkd gefällt mir persönlich sehr gut, da die Anzahl an Client-Bibliotheken sehr hoch ist, das Programm sehr schnell arbeitet und vorallem einen Möglichkeit bietet Arbeitsaufgaben persistent zu machen. Beanstalkd schreibt dabei die Arbeitsaufgaben in ein binäres Logfile, sodass es nach einem Reboot wieder an gleicher Stelle weiterarbeiten kann wo es aufgehört hat.

Das Tool wird von Keith Rarick entwickelt und steht für Linux und Mac zum Download bereit. Einen Windows Build wird aktuell nicht angeboten. Ich habe mich daher daran gemacht, beanstalkd unter Cygwin zum laufen zu bringen und konnte dies erfolgreich umsetzen. 

Beanstalkd selbst kompilieren

  1. Cygwin herunterladen und die folgenden Pakete installieren: gcc 4.5.0, autoconf, make
  2. Download der beanstalkd sourcen (https://github.com/kr/beanstalkd), entweder direkt als Download oder per Git (z.B. mit msysgit)
  3. Download der aktuellen libevent Bilbiothek (nicht unter Cygwin verfügbar)
  4. Entpacken beider Archive
  5. Cygwin Bash starten, mit "cd" in das Verzeichnis von libevent wechseln und "./configure && make && make install" ausführen
  6. Nun mit "cd" in das Verzeichnis von beanstalkd wechseln und dort "./configure" ausführen
  7. Nun muss manuell das Makefile geöffnet werden und dort bei den CPPFLAGS den Teilstring "-Werror" entfernen. Dieser verhindert das Kompilieren da eine Warning als Error interpretiert wird. Diese Warning ist jedoch m.M.n. unbedenklich.
  8. Nun mit "make && make install" beanstalkd kompilieren und installieren.
  9. Fertig!

Beim Ausführen von "make install" kann es passieren, dass ein Fehler auftritt ("Datei oder Verzeichnis nicht gefunden"). Vor dem Installieren sollte sichergestellt werden, dass beide Archive nicht in einem Verzeichnis liegen dessen absoluter Pfad ein Leerzeichen enthält (z.b. C:/Dokumente und Einstellungen/.. funktioniert nicht).

Download

Ich biete hier die aktuelle Version 1.4.6 von beanstalkd an. Diese ist lauffähig unter Windows. Ich übernehme keine Garantie für korrekte Ausführung und hafte nicht für etwaige Schäden die durch den Download oder die Benutzung entstehen könnten. beanstalkd wird von Keith Rarick entwickelt und steht unter GNU General Public Licence Version 3.

beanstalkd-1.4.6-cygwin.tar.gz
beanstalkd-1.4.6-cygwin.zip

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Kommentare (6) Trackbacks (0)
  1. Absolut großartig, vielen Dank!

  2. Thanks! That worked!

  3. Funktioniert klasse! Vielen Dank! Dauert natürlich um einiges länger als unter Linux, aber es geht. Ich musste allerdings explizit die Adresse und den Port angeben.
    beanstalk.exe -l 127.0.0.1 -p 11300
    Diese sollten eigentlich per default kommen.

  4. Vielen Dank! It works with beanstalkd-1.4.6. It does not work with later versions – since release 1.5 beanstalkd does not use autoconf and libevent.

  5. Hi! Thanks for your comment. When I have the time I will update / release a new post for beanstalkd on Windows.

  6. Hi halfdan, I try to build the new version of beanstalkd, but it alert error when process the main.c. Could you help to release a new version on windows. Many thanks.


Leave a comment

Noch keine Trackbacks.