1. Einführung
Gearman ist ein Tool, das Arbeit an andere Maschinen oder Prozesse delegieren kann.
Offizielle Website-Adresse: http://gearman.org/
Gearman besteht normalerweise aus drei Teilen: Client-Worker-Task-Server, Worker führt den vom Client gesendeten Job aus und gibt ihn dann über den Job an den Client zurück Server. Gearman stellt Client- und Worker-APIs bereit und verwendet diese APIs für die Kommunikation mit dem Jobserver.
Dies ist das Funktionsprinzipdiagramm:
2. Installation
Die offizielle Installationsanleitung finden Sie unter: http://gearman.org/getting-started/
Im Folgenden wird der spezifische Installationsprozess in Ubuntu beschrieben:
1. In Ubuntu 14.04 wird Python-Software-Properties durch Software-Properties-Common ersetzt.
<code>sudo apt-get install software-properties-common sudo add-apt-repository ppa:gearman-developers/ppa sudo apt-get update </code>
2 , Entwicklungstools, Upgrade durchführen
<code>sudo apt-get install gearman-job-server libgearman-dev sudo apt-get install gearman-tools sudo apt-get upgrade </code>
3. Wenn keine PECL vorhanden ist, installieren Sie PECL und verwenden Sie PECL, um Gearman (CLI, Client, Worker) zu installieren
<code>sudo apt-get install php-pear sudo apt-get install php5-dev sudo pecl install gearman </code>
4. Ändern Sie php.ini (CLI und Server), um Gearman zu verwenden
<code>sudo vi /etc/php5/cli/php.ini </code>
Dynamische Erweiterungen hinzufügen:
extension=gearman.so
3. Gearman in PHP verwenden
1. So rufen Sie Gearman in PHP auf
PHP-Version anzeigen
<code><?php print gearman_version() . "\n"; ?> 运行方式:php test.php </code>
Erstellen Sie einen Worker
<code><?php $worker= new GearmanWorker(); $worker->addServer(); $worker->addFunction("reverse", "my_reverse_function"); while ($worker->work()); function my_reverse_function($job){ return strrev($job->workload()); } ?> </code>
Nachdem Sie dies ausgeführt haben, müssen Sie Strg C drücken, um das Programm zu beenden. Dieser Code erstellt ein Worker-Objekt, fügt den Standardserver hinzu und registriert die Reverse-Callback-Funktion. Das Programm tritt in eine Endlosschleife ein, wobei die Callback-Funktion ausgeführt wird. Dabei wird die Zeichenfolge einfach umgekehrt und dann zurückgegeben.
Erstellen Sie einen Client
Client ähnelt Worker, erstellen Sie die folgende server.php
<code><?php $client=new GearmanClient(); $client->addServer(); print $client->do("reverse","Hello World!"); ?> </code>
Sehen Sie sich die Ausführungsergebnisse an:
Erstellen Sie einen Image-Resize-Worker
<code><?php $worker= new GearmanWorker(); $worker->addServer(); $worker->addFunction("resize", "my_resize_function"); while ($worker->work()); function my_resize_function($job) { $thumb = new Imagick(); $thumb->readImageBlob($job->workload()); if ($thumb->getImageHeight() > 600) $thumb->scaleImage(0, 600); else if ($thumb->getImageWidth() > 800) $thumb->scaleImage(800, 0); return $thumb->getImageBlob(); } ?> </code>
<code>sudo wget http://www.imagemagick.org/download/ImageMagick.tar.gz tar -xzvf ImageMagick.tar.gz cd ImageMagick sudo ./configure -prefix=/usr/local/imagemagick -enable-lzw -with-modules && make && make install </code>
Resize-Client
Verwenden Sie hier den Befehl zum Aufrufen der Client
<code>gearman -f resize < full.jpg > thumb.jpg </code>
2. Verwenden Sie kein PHP, sondern Gearman direkt über die Befehlszeile.
Starten Sie ein Terminal, um den Daemon-Prozess auszuführen
<code>sudo gearmand --daemon </code>
Starten Sie einen Worker, rufen Sie hier den ls-Befehl auf
<code>gearman -w -f ls -- ls -lh </code>
Starten Sie einen Client
<code>gearman -f ls < /dev/null </code>
, um die Ausgabe anzuzeigen.
Referenz-URL: http://gearman.org/getting-started/#client
Das Obige stellt die Verwendungshinweise für den Gearman-Eintrag vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.