如何在Python中在后台运行长时间运行的作业

2024-04-23

我有一个运行长时间运行的作业(大约几个小时)的网络服务。我正在使用 Flask、Gunicorn 和 nginx 来开发它。

我想做的是让需要很长时间才能完成的路线,调用创建线程的函数。然后,该函数将向路由返回一个 guid,并且路由将返回一个 url(使用 guid),用户可以使用该 url 来检查进度。我将线程设置为守护进程(thread.daemon = True),以便在我的调用代码退出(意外)时线程退出。

这是正确的使用方法吗?它有效,但这并不意味着它是正确的。

my_thread = threading.Thread(target=self._run_audit, args=())
my_thread.daemon = True
my_thread.start()

Celery 和 RQ 是过度设计的简单的任务。 看看这个文档 -https://docs.python.org/3/library/concurrent.futures.html https://docs.python.org/3/library/concurrent.futures.html

另请检查示例,如何在 Flask 应用程序的后台运行长时间运行的作业 -https://stackoverflow.com/a/39008301/5569578 https://stackoverflow.com/a/39008301/5569578

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中在后台运行长时间运行的作业 的相关文章

随机推荐