如何在python中运行后台任务

RAM*_*RAM 6 python multithreading python-3.x

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

Far*_*ain 10

import threading
import time

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

t = BackgroundTasks()
t.start()
Run Code Online (Sandbox Code Playgroud)

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


小智 5

asyncio库可能就是您正在寻找

import asyncio

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

# Python 3.7+
asyncio.run(main())
Run Code Online (Sandbox Code Playgroud)