python:threading.Timer在指定时间后没有被调用

时间:2017-07-27 12:31:32

标签: python multithreading python-2.7 celery

我有一段类似于以下的代码

class Job():
  def start():
    from threading import Timer
    t = Timer(10.0, self.cancel)
    t.start()
    self.status = "Started"
    submitChildTasks() #----> Submits child celery tasks

作业实例本身是芹菜任务,可以有多个子芹菜任务。我需要取消Job及其所有子任务的执行。为此,我需要执行cancel。我怀疑,只要Job.start()完成t即将死亡。有没有办法处理它。我想让子任务也在执行,而't'正在等待执行cancel。 但是cancel没有被调用。我有什么问题吗?

任何指导都非常感谢。提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于您没有发布所有代码,我已添加此代码,主要是您未发布的代码

from threading import Timer

def cancel():
    print 'cancel called'

t = Timer(10.0, cancel)
t.start()

此代码将按预期在计时器中等待10秒。也许这个问题与缺少的课程有关?如果这仍然没有帮助,请添加您的代码。