【问题标题】:python : threading.Timer is not getting called after specified timepython:threading.Timer在指定时间后没有被调用
【发布时间】:2017-07-27 12:31:32
【问题描述】:

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

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

一个作业实例本身就是一个 celery 任务,可以有多个子 celery 任务。我需要取消 Job 及其所有正在执行的子任务。为此我需要执行cancel。我怀疑Job.start() 完成后t 就快死了。有没有办法处理它。我希望在“t”等待执行cancel 时也执行子任务。 但是cancel 没有被调用。是不是我做错了什么?

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

【问题讨论】:

  • 您的代码运行正常!!!可能还有其他问题,您能否提供更多详细信息?

标签: python multithreading python-2.7 celery


【解决方案1】:

由于您没有发布所有代码,所以我添加了这段代码,主要是您没有发布的代码

from threading import Timer

def cancel():
    print 'cancel called'

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多