
1 quietin 2016-01-08 15:26:41 +08:00 apscheduler ,第 4 点自己实现就行了,其它都可以实现 |
3 tywtyw2002 OP @quietin 能不能简单说说第四点怎么实现呢? |
4 baocaixiong 2016-01-08 15:30:58 +08:00 celery.schedule |
5 knightdf 2016-01-08 15:31:48 +08:00 supervisor ,想控制直接自己再程序里控制 |
6 quietin 2016-01-08 15:47:21 +08:00 @tywtyw2002 直接 try except 可以吧?函数递归,或者用另外一个函数来调用也可以。 比如 task 用 work 函数执行, 在函数 run 中跑 work -> A exception -> except -> X + work 把 task 加入到 apscheduler 的调度中即可 |
7 quietin 2016-01-08 15:47:55 +08:00 @tywtyw2002 手误,是把 run 函数加入到 apscheduler 的调度中 |
8 ethego 2016-01-08 15:51:37 +08:00 |
9 quietin 2016-01-08 15:51:44 +08:00 |
10 tywtyw2002 OP @quietin 之前我是这么想的,但是后来发现一个问题就是 X 有 30%的时候非一次成功,有时候需要等待 30+分钟并且进行多次才可以。 所以把他加入 run 里面并不是一个很好的解决办法。 比较好的解决办法就是把 X 当做一个新的 task 去调度,并且暂停原来的 task ,知道 X 执行成功。 apscheduler 简单看了一下,没找到关于动态调度的信息。 |
11 quietin 2016-01-08 16:00:48 +08:00 @tywtyw2002 同步阻塞, X 成功前 run 就卡在那儿了,不满足么 |
12 Rand01ph 2016-01-08 16:18:19 +08:00 celery 应该可以满足 |
13 est 2016-01-08 16:20:04 +08:00 redis queue |
14 tuteng 2016-01-08 17:01:37 +08:00 celery |
15 robinlovemaggie 2016-01-08 17:06:29 +08:00 看楼主的意思是觉得 celery+redis 太复杂是吗?试试 huey+redis ,轻巧许多 https://huey.readthedocs.org/en/latest |
16 loading 2016-01-08 17:08:01 +08:00 via Android 这个有时间研究一下,目前我还是操作系统完成的。 |
17 langyu 2016-01-08 18:31:38 +08:00 celery beat |
18 junzki 2016-01-08 23:44:07 +08:00 同 APScheduler ,基本能达到要求。至于 Daemonize ,可选方案比较多。 Python Cookbook 中给出了在 *nix 系统中 Daemonize 的实现方案,抄下来就可以用; 也可以使用 Linux 自带的 daemonize 来实现,不过可能需要自己写一点 shell 。 |
19 tywtyw2002 OP @quietin 但是这样阻塞了其他 task ,不同 task 是独立的。 |
20 tywtyw2002 OP @robinlovemaggie 不想配置 redis 呗。 觉得这简单的 job 一个 py 文件解决了。而且 task 数量就几个,主要是循环运行。 |
21 mqingyn616 2016-01-09 10:03:53 +08:00 |
22 nomaka 2016-01-09 19:22:36 +08:00 |