Heim >Backend-Entwicklung >Python-Tutorial >Eine vorläufige Studie zum verteilten Aufgabensystem GEARMAN FÜR PYTHON

Eine vorläufige Studie zum verteilten Aufgabensystem GEARMAN FÜR PYTHON

高洛峰
高洛峰Original
2017-04-18 10:33:191172Durchsuche

Um mehr über Gearman zu erfahren, besuchen Sie bitte die offizielle Gearman-Website: gearman.org/

Gearman installieren:

Grundlegende Abhängigkeitsbibliotheken:

yum install boost-devel libevent-devel sqlite-devel libuuid-devel
wget https://launchpad.net/gearmand/trunk/0.33/+download/gearmand-0.33.tar.gz 
tar xzvf gearmand-0.33.tar.gz 
cd gearmand-0.33 
./configure
make
make install

Gearman Python-Client installieren

wget http://pypi.python.org/packages/source/g/gearman/gearman-2.0.2.tar.gz#md5=3847f15b763dc680bc672a610b77c7a7 
    tar xvzf  gearman-2.0.2.tar.gz 
    python setup.py install

Automatische Installation direkt erhalten: easy_install gearman

Dienst starten: gearmand - d

Starten Sie den Worker: gearman -w -f wc -- wc -l &

-w bedeutet, den Worker zu starten, -f wc bedeutet, eine Aufgabe zu starten mit dem Namen wc. --wc -l gibt an, dass diese Aufgabe darin besteht, wc -l auszuführen, um die Anzahl der Zeilen zu zählen.

Client starten: gearman -f wc < /etc/passwd

Python-Arbeitscode:

import os 
import gearman 
import math       
class MyGearmanWorker(gearman.GearmanWorker):   
    def on_job_execute(self, current_job):   
        print "Job started" 
        return super(MyGearmanWorker, self).on_job_execute(current_job)   
     
def task_callback(gearman_worker, gearman_job):   
    print gearman_job.data  
    return gearman_job.data 
     
my_worker = MyGearmanWorker([&#39;192.168.0.75:4730&#39;])   
my_worker.register_task("echo", task_callback)   
my_worker.work()

Python-Client-Code:

from gearman import GearmanClient       
gearman_client = GearmanClient([&#39;192.168.0.75:4730&#39;]) 
gearman_request = gearman_client.submit_job(&#39;echo&#39;, &#39;foo&#39;) 
result_data = gearman_request.result 
print result_data
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn