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