APScheduler + Gearman 构建分布式定时任务调度

本文介绍了Python定时任务框架APScheduler的功能及使用方法,包括如何利用SQLAlchemy存储任务状态;同时详细阐述了分布式任务分发框架Gearman的原理与安装配置过程,包括其三大组件Client、Worker和JobServer的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


    APScheduler是基于类似于Java Quartz的一个Python定时任务框架,实现了Quartz的所有功能。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。 它利用sqlalchemy包实现job状态存储于关系数据库,例:

__oracle_url = 'oracle://test1:test1@10.44.74.13:8521/biprod'  
__configure = { 'apscheduler.standalone': True,  
                'apscheduler.jobstores.sqlalchemy_store.class': 'apscheduler.jobstores.sqlalchemy_store:SQLAlchemyJobStore',  
                'apscheduler.jobstores.sqlalchemy_store.url': __oracle_url}

from apscheduler.jobstores.sqlalchemy_store import SQLAlchemyJobStore
from apscheduler.scheduler import Scheduler

scheduler = Scheduler(standalone=False)                  
scheduler.add_jobstore(SQLAlchemyJobStore(url=__oracle_url), 'default')

使用请参考: http://pythonhosted.org/APScheduler/index.html



Gearman是一款开源的通用的分布式任务分发框架,自己本身不做任何实际的工作。它可以将一个个的任务分发给其他的物理机器或者进程,以达到工作的并行运行和LB。 有人说Gearman是分布式 计算框架其实是不太准确的,因为相较于Hadoop而言,Gearman更偏重于任务的分发而不是执行。Gearman扮演的角色更像是一系列分布式进程 的神经系统。

Gearman框架中一共有三个角色:

  1. Client: 提交任务的人。创建需要被执行的job然后发送给Job Server。
  2. Worker: 真正干活的人。向Job Server注册然后从Job Server处拿活干。
  3. Job Server:传说中的manager。接收client提交的Job,分发给相应的worker。并能在worker出现异常时重新派发job。

https://i-blog.csdnimg.cn/blog_migrate/10723ea29989886415097392e187fb3f.png

由于yum或apt-get安装的版本太低,一般都到手工下载最新版本编译安装。步骤如下:
1. 安装依赖包, sudo apt-get install gcc autoconf bison flex libtool make libboost-all-dev libcurl4-openssl-dev curl libevent-dev memcached uuid-dev libpq-dev
2. 下载安装程序, wget https://launchpad.net/gearmand/1.2/1.1.5/+download/gearmand-1.1.5.tar.g
3. 解压编译安装,
tar xvzf gearmand-1.1.5.tar.gz
cd gearmand-1.1.5
./configure
make
make install 
4. 当运行 /usr/local/sbin/gearmand -d 时出现 error while loading shared libraries: libgearman.so.1, 运行如下 sudo ldconfig

启动gearman:

1. gearmand --pid-file=/var/run/gearman/gearmand.pid --daemon --log-file=/var/log/gearman-job-server/gearman.log --listen=192.168.56.101
   gearmand --verbose DEBUG -d

2. 通过命令行工具来体验 Gearman 的功能:
启动 Worker:gearman -w -f wc -- wc -l &
运行 Client:gearman -f wc < /etc/passwd

gearman -w -f testgm -- python &
gearman -f testgm < test_gearman.py


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16582684/viewspace-776753/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16582684/viewspace-776753/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值