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