如何在python中运行后台任务

时间:2020-01-21 23:09:09

标签: python python-3.x multithreading

我正在用Flask开发一个小型Web服务,该服务需要运行后台任务,最好是从任务队列中运行。但是,在对主题进行搜索之后,唯一的结果基本上是Celery和Redis Queue,它们显然需要单独的排队服务,因此这些选项过于繁重且难以部署。我正在寻找的只是一个简单的后台任务队列,该任务队列使任务可以在单独的线程/进程上排队和执行,有人知道Python中是否有类似的东西吗?

2 个答案:

答案 0 :(得分:2)

import threading
import time

class BackgroundTasks(threading.Thread):
    def run(self,*args,**kwargs):
        while True:
            print('Hello')
            time.sleep(1)

t = BackgroundTasks()
t.start()

在while语句之后,可以将要运行的代码放到后台。也许删除一些模型,发送电子邮件或其他什么。

答案 1 :(得分:0)

您可能正在寻找asyncio

import asyncio

async def main():
    print('Hello ...')
    await asyncio.sleep(1)
    print('... World!')

# Python 3.7+
asyncio.run(main())