<p>基本上我有很多任务(成批处理大约1000个),这些任务的执行时间可能相差很大(从不到秒到10分钟)。我知道,如果一个任务执行超过一分钟,我可以终止它。这些任务是优化某些数据挖掘模型的步骤(但彼此独立),并且大部分时间都在一些C扩展函数中,因此如果我试图优雅地终止它们,它们就不会合作。在</p>
<p>是否有一个符合这种模式的分布式任务队列——AFAIK:celery允许中止愿意合作的任务。但我可能错了。在</p>
<p>我最近问了一个类似的问题,关于在纯python<a href="https://stackoverflow.com/questions/8881191/kill-hanging-function-in-python-in-multithreaded-enviorment">Kill hanging function in Python in multithreaded enviorment</a>中杀死挂起函数。在</p>
<p>我想我可以将celery任务子类化,这样它会产生一个新的进程,然后执行它的有效负载,如果需要很长的时间,它就会中止它的执行,但这样一来,新解释器的初始化开销会让我丧命。在</p>