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

高洛峰
Freigeben: 2017-04-18 10:33:19
Original
1199 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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()
Nach dem Login kopieren

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
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage