>백엔드 개발 >파이썬 튜토리얼 >분산 작업 시스템 GEARMAN FOR PYTHON에 대한 예비 연구

분산 작업 시스템 GEARMAN FOR PYTHON에 대한 예비 연구

高洛峰
高洛峰원래의
2017-04-18 10:33:191172검색

Gearman에 대해 자세히 알아보려면 gearman 공식 웹사이트(gearman.org/

++++++++++++++++++++++++++++)를 방문하세요. ++ +++++++++++++++

Gearman 설치:

++++++++++++++++++++ ++ ++++++++++++++++++++++++++

기본 종속성 라이브러리:

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 클라이언트 설치

++++++++++++++++++++++++++++++++++++++++++++

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

직접 자동 설치 받기: easy_install gearman

서비스 시작: gearmand -d

작업자 시작: gearman -w -f wc -- wc -l &

-w는 작업자 시작을 의미하고, -f wc는 wc라는 작업을 시작한다는 의미이며, -- wc -l은 이 작업이 행 수를 계산하기 위해 wc -l을 수행한다는 것을 의미합니다.

클라이언트 시작: gearman -f wc < /etc/passwd

+++++++++++++++++++++++++ + +++++++++++++++++++

Python 작업 코드:

++++++++++++++++ ++++++++++++++++++++++++++++

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 클라이언트 코드:

++ ++ ++++++++++++++++++++++++++++++++++++++++

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
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.