关于 web 服务端超长时间任务,有条件的停止任务问题。

2018-05-23 14:16:54 +08:00
 itertools

之前服务端遇到定时任务或者异步任务,都会用 celery 解决。

但是这次需求是:用户在 a 时间点发送一个请求到 web 服务端,服务端就需要开始某个人物 taska,然后 ,可能在几个小时后,再发送一个请求到 web 服务端,(此次请求会包含一些任务停止的标准,比如:对 taska 处理结果希望到达某个值,或者某个时间点),之后,任务根据这次的参数判断什么时候停止。

看了下 celery 貌似不符合这种场景,请教下,这种场景下有什么方案?谢谢! PS:停止的条件不是一开始就知道的(就是不能在任务开始的时候就知道任务结束条件的),需要任务开始一段时间,才能够得到,所以第二个请求一定要发的。

1429 次点击
所在节点    Python
1 条回复
sujin190
2018-05-24 18:21:47 +08:00
显然是需要在任务执行过程中不断检查结束任务条件是否达成,是则退出
或者,任务启动之后再创建一个线程来执行实际任务,主线程则不断检查停止标记是否达成,是则停止任务线程执行

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

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

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

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

© 2021 V2EX