试过了python自带的sched和高级的APScheduler,但是任务都是阻塞的,如果每次调用的执行时间较长,超过调用周期间隔时间,就会阻塞,等待当前任务完成才进行下一次调用,我希望是异步调用,每次调用不会阻塞下一次调用,求各位推荐符合我需求的方法,多谢
1
lianghui Jul 22, 2014
多线程,主线程watch分派任务,线程池做任务
|
3
zhangyuting OP 我觉得能满足我需求的应该是使用多线程的,但是不知道有没有已经实现了的库
|
4
stevenyou Jul 22, 2014 celery, 不知道是不是大材小用了
|
5
ericFork Jul 22, 2014
简单的直接用 python-rq
|
6
lianghui Jul 22, 2014 @zhangyuting
https://github.com/coleifer/huey 这里有个简单的实现,缺点很多: 1.定时任务是单线程的 2, taskqueue 线程池是大小写死的,不能自适应线程池大小。 3, 使用pickle蛋疼的不能解藕生产者和消费者的代码 如果需要实用可能需要一些改进: 1.一个可以自适应的线程池大小,可以仿照的cherrypy或paste的wsgiserver。 2.解构业务逻辑,重新定义序列化和沟通协议使用json或者msgpack,(thrift, gooogle probuf个人不推荐) |
7
zhangyuting OP @stevenyou 这个可以不阻塞的调用周期任务吗?
|
8
stevenyou Jul 23, 2014 @zhangyuting 可以,异步的
|
9
zhangyuting OP @ericFork 请教-rq 怎么用
|