python gearman的应用
工作原理 :
1. client生成任务后,
import gearmanfrom gearman.constants import JOB_UNKNOWNimport timedef check_request_status(job_request): if job_request.complete: print "Job %s finished! Result: %s - %s" % (job_request.gearman_job.unique, job_request.state, job_request.result) elif job_request.timed_out: print "Job %s timed out!" % job_request.gearman_job.unique elif job_request.state == JOB_UNKNOWN: print "Job %s connection failed!" % job_request.gearman_job.unique gm_client = gearman.GearmanClient(['xxxxx:xxxx', 'xxxxxxx:xxx'])list_of_jobs = []data_for_process = ""for i in range(1000): data_for_process = "thank you--:%d" % i list_of_jobs.append(dict(task="test_name_mmg", data=data_for_process)) submitted_requests = gm_client.submit_multiple_jobs(list_of_jobs, background=False, wait_until_complete=False)time.sleep(1.0)completed_requests = gm_client.wait_until_jobs_completed(submitted_requests, poll_timeout= 5.0)for completed_job_request in completed_requests: check_request_status(completed_job_request)
gearman中的几个对象:
1. Request对象
.result
.exception
.state
.timed_out
2. job对象
.Connection
.handle
.task
.unique
.data