之前服务端遇到定时任务或者异步任务,都会用 celery 解决。
但是这次需求是:用户在 a 时间点发送一个请求到 web 服务端,服务端就需要开始某个人物 taska,然后 ,可能在几个小时后,再发送一个请求到 web 服务端,(此次请求会包含一些任务停止的标准,比如:对 taska 处理结果希望到达某个值,或者某个时间点),之后,任务根据这次的参数判断什么时候停止。
看了下 celery 貌似不符合这种场景,请教下,这种场景下有什么方案?谢谢! PS:停止的条件不是一开始就知道的(就是不能在任务开始的时候就知道任务结束条件的),需要任务开始一段时间,才能够得到,所以第二个请求一定要发的。
1
sujin190 2018-05-24 18:21:47 +08:00
显然是需要在任务执行过程中不断检查结束任务条件是否达成,是则退出
或者,任务启动之后再创建一个线程来执行实际任务,主线程则不断检查停止标记是否达成,是则停止任务线程执行 |