对于 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 串行处理就好了)。
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 串行处理就好了)。
