Python 有什么比较轻量的库可以提供 crontab 的功能并且带有 task queue 的功能呢?

2016-01-08 15:06:28 +08:00
 tywtyw2002
对于 Python 来说不知道有没有什么比较轻量级的 task 库可以支持如下操作:

1. 可以实现重复执行某个 task 。(每 10 分钟 polling 一次网站,并且检查相关信息)
2. 多 task 支持。(同样的 task 但用不同的参数,每个有着不同参数的 task 是独立的)
3. 可以实现对 task 运行时间的控制(如 task 只在周 1-5 的 7 : 00~23 : 00 运行)
4. 支持 events 。 (例如: task 产生 A Exception ,则直接执行 X 操作,并且在 X 操作结束后再次执行这个 task 。(临时加的一次 task ,不改变之前的调度))
5. 支持 task 移除 (在达到指定条件后,可以移除某个在调度中的 task ,如果全部 task 都被移除了,那么程序关闭。)


一些解释说明:
1. 之前这个程序用 time.sleep 实现的 task 调度,对于多 task 的处理就是开了 n 个程序。
2. 对于上面第四点来说,因为有很多不同的 Exception ,我并不想把异常处理写在 task 里面,而是 task 产生异常之后,插入一个 X 操作去处理这个异常,并且在这个异常没有处理掉之前暂停这个 task 的调度。
3. 目前程序很小,也不像做的太复杂,所以不大想用分布式 queue/worker 这样的的架构。最好是一个 process ,也可以一个 process 里面有 n 个 thread 去并行处理不同的 task (其实 task 串行处理就好了)。
4604 次点击
所在节点    Python
22 条回复
mqingyn616
2016-01-09 10:03:53 +08:00
楼主可以看看这个,非常简单 low 却又 low 的小清新的 task manager ,基于 tornado 。

https://github.com/mqingyn/tornask
nomaka
2016-01-09 19:22:36 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/249305

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX