任务分发框架 gearmand
来源:互联网 发布:怎么分辨mac口红真假 编辑:程序博客网 时间:2024/05/17 02:40
安装
yum -y install gearmand
pip install gearman
Worker 脚本
gearman运行需要三部分:client,job,worker
client负责任务请求,job负责任务分发,worker负责任务执行
启动job
gearmand –log-file gearmand.log –listen 115.28.6.1 –port=4730 –verbose=INFO
启动worker
python worker.py
启动client
python client.py
worker 脚本 worker.py
import gearmandef task_listener_reverse(gearman_worker, gearman_job): '''reverse string''' print 'task_listener_reverse:' print gearman_job return gearman_job.data[::-1] if __name__ == '__main__': print 'Workered' gm_worker = gearman.GearmanWorker(['115.28.6.1:4730']) gm_worker.register_task('reverse', task_listener_reverse) # reverse is task name,it must be same as client task name gm_worker.work()
client 脚本 client.py
from gearman import GearmanClientdef check_request_status(job_request): if job_request.complete: print "Job %s finished! Result: %s - %s" % (job_request.job.unique, job_request.state, job_request.result) elif job_request.timed_out: print "Job %s timed out!" % job_request.unique elif job_request.state == 'JOB_UNKNOWN': print "Job %s connection failed!" % job_request.uniqueif __name__ == '__main__': gm_client = GearmanClient(['115.28.6.1:4730']) current_request = gm_client.submit_job('reverse', 'arbitrary binary data', background=False, wait_until_complete=True) check_request_status(current_request)
client 脚本2 分发多个任务 client2.py
from gearman import GearmanClientdef check_request_status(job_request): if job_request.complete: print "Job %s finished! Result: %s - %s" % (job_request.job.unique, job_request.state, job_request.result) elif job_request.timed_out: print "Job %s timed out!" % job_request.unique elif job_request.state == 'JOB_UNKNOWN': print "Job %s connection failed!" % job_request.uniqueif __name__ == '__main__': gm_client = GearmanClient(['115.28.6.1:4730']) list_of_jobs = [dict(task="reverse", data="binary data"), dict(task="reverse", data="other binary data")] submitted_requests = gm_client.submit_multiple_jobs(list_of_jobs, background=False, wait_until_complete=False) 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)
官方文档
http://pythonhosted.org//gearman/library.html
0 0
- 任务分发框架 gearmand
- gearmand
- 分布式任务分发处理框架-Gearman
- Gearman——分布式任务分发框架
- 分布式任务分发框架Gearman教程和PHP实现实例
- laravel框架在路由或控制器之外分发任务
- 转自橙虚缘Gearman——分布式任务分发框架
- 分布式任务分发框架Gearman教程和PHP实现实例
- erlang任务分发
- 任务分发系统gearman
- Celery 分发任务
- [iOS] GCD任务分发
- Gearman 分发任务处理
- Gearman-任务分发系统
- RabbitMQ任务分发
- gearmand Changelog
- gearmand分布
- 开发任务分发中的横向分发和纵向分发
- javascript构造函数之稳妥构造函数
- 493_有头尾布局的条目点击
- Find Bottom Left Tree Value
- .NET 分层开发 第一二章学生管理系统
- Oracle12C--序列(十六)
- 任务分发框架 gearmand
- 494_桌面悬浮窗
- Android开发:最全面、最易懂的Android屏幕适配解决方案
- InnoDB存储引擎——表
- PHP
- iOS导航栏切换界面时隐藏和显示
- 前一日函数PreDate(static方法与非static的区别)
- 数据结构--排序算法(冒泡排序&&快速排序&&鸽巢排序)
- 环形缓冲区