Lösungen und Tipps von den mpex Profis

mpex Techblog

21.07.2020

Perl Gearman richtig geforked

Gearman ist eine Server/Client/Worker Anwendung, mit der sich Aufgaben/Tasks über beliebig viele Worker (Server) verteilen lassen. Implementierungen gibt es in diversen Programmiersprachen, darunter auch Perl und PHP.

Gearman ist eine Server/Client/Worker Anwendung, mit der sich Aufgaben/Tasks über beliebig viele Worker (Server) verteilen lassen. Implementierungen gibt es in diversen Programmiersprachen, darunter auch Perl und PHP.

Gewöhnlich führen die Worker Funktionen aus. Wie in Scripten üblich, tun sie dies sequentiell.
Sollen mehrere Aufgaben parallel von den Workern bearbeitet werden, muss man sich selbst um ein Forking kümmern.

Beim Forking in Perl ist Vorsicht geboten. Forkt man einzelne Tasks innerhalb einer Worker Funktion ab, kann es schnell zu Fehlermeldungen, wie z.B. malformed Magic oder eof kommen, was bis zum Crash von Server und Worker führen kann.

Die Erfahrung zeigt, dass es sinnvoller ist, das Forking schon auf Worker-Ebene durchzuführen. Das bedeutet, man forkt z.B. einen Prozess ab und startet in diesem den Worker.
#!/usr/bin/perl $pid = fork(); if($pid == 0) { use Gearman::Worker; $worker = new Gearman::Worker; $worker->register_function('test', sub () { echo "Test\n"; }); $worker->work() while 1; exit(0); }

Dies führt zu einer stabileren Umgebung.

Etwas fortgeschrittener ist die Nutzung von Gearman::Driver, das wir uns aber noch nicht angeschaut haben.

Kann mpex weiterhelfen?

Mit über 20 Jahren Erfahrung im Bereich Managed Hosting haben wir ein umfangreiches Repertoire an Problemlösungen angesammelt, die uns beim Betrieb von Serverumgebungen auf höchstem technischen Niveau geholfen haben. Unsere Systeme bauen komplett auf Open-Source-Technologien auf. Damit sind wir flexibel und können bei technischen Schwierigkeiten direkt selbst eingreifen. Analog zur Open-Source-Idee haben wir uns für diesen Techblog entschieden, um unsere Expertise und Problemlösungen mit dir zu teilen. Dazu zählen Technologien wie Bacula, Debian, Pacemaker, Puppet, diverse allgemeine Serverprobleme und noch vieles darüber hinaus. Wenn du mehr über unsere individuellen Business-Lösungen erfahren und dich als Admin auf deine Kernkompetenzen konzentrieren möchtest, sprich uns einfach an. Wir realisieren das Managed Hosting deiner Anwendung und kümmern uns in Zukunft um all solche Probleme.

Zum Kontaktformular
mpex GmbH
Weitere Blog Artikel
13.01.2021

LDAP – Problem: Authentifizierung wird abgelehnt

durch die Fehlermeldung im LDAP Logfile: "RESULT tag=97 err=49 text=" wird die Authentifizierung abgelehnt.

Artikel lesen
06.01.2021

Bacula – Problem: Fehlermeldung "Unable to authenticate with Storage daemon"

Fehlermeldung beim Verbindungsversuch mit bacula-sd: "Unable to authenticate with Storage daemon".

Artikel lesen

Kontaktformular - Sprechen Sie uns an!

Sprechen Sie uns an!

Sie wollen mehr über uns und unsere Leistungen erfahren? Lernen Sie uns im persönlichen Gespräch kennen!

Telefon: +49 30 780 97 180
E-Mail: info@mpex.de