python - 让线程执行不超过24小时然后死亡

标签 python multithreading

因此,我在应用程序中有一些线程监视某些第 3 方端点上的临时可用文件。我希望他们实现自己的人生目标不超过一天,然后终止。最好的方法是什么?

S/O 上有很多关于如果线程在某些功能上超时(例如 TCP 挂起连接等)则终止线程的问题,但我的目标更多地集中在为线程提供与其执行的功能无关的生命周期。我快速演示了到目前为止我的想法:

class Task(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.life = datetime.utcnow() + timedelta(seconds=60)

    def run(self):
        while True:
                if datetime.utcnow() < self.life:
                        #do stuff that i do 
                        print "hi"
                        time.sleep(5)
                else:
                        break

t = Task()
t.start()

这很好,但我是否以一种愚蠢的方式思考这个问题?有没有更好的方法来处理呢?

最佳答案

def run(self):
    while datetime.utcnow() < self.life:
        #do stuff that i do 
        print "hi"
        time.sleep(5)

关于python - 让线程执行不超过24小时然后死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18746656/

相关文章:

python - 如何拆分没有定界符但小数位数固定的字符串 - python

python - BeautifulSoup 在某些下载请求中拾取 div 对象,但在其他下载请求中拾取 div 对象

python - 如何在 Python3 中递归删除空文件夹?

python - 基于列表列表python的第一个元素的平均值

c# - Monitor.PulseAll 的正确用法?

c# Task.WhenAll 在等待完成时阻塞

java - 当我更改文本并将其显示在线程中的 UI 上时,什么也没做(JAVA)

python - Numpy 对象数组

wpf - 您如何避免不确定的进度条卡住?

java - StreamCorruptedException : invalid type code: AC