Python 在WSGI环境中启动单独的线程
很难找到其他已经实施类似措施的案例 我有一个使用Werkzeug构建的WSGI应用程序,如果可能的话,我希望在与WSGI应用程序相同的上下文中运行一些后台清理过程(我不希望在cron中使用单独的脚本,这样当应用程序作为服务启动时,必要的后台任务也会运行)正在使用的Web服务器是带有mod_wsgi的Apache 让我们假设一个非常基本的WSGI示例,因为所提供的内容实际上没有问题。我要用Pocoo在 在Python 在WSGI环境中启动单独的线程,python,multithreading,wsgi,werkzeug,Python,Multithreading,Wsgi,Werkzeug,很难找到其他已经实施类似措施的案例 我有一个使用Werkzeug构建的WSGI应用程序,如果可能的话,我希望在与WSGI应用程序相同的上下文中运行一些后台清理过程(我不希望在cron中使用单独的脚本,这样当应用程序作为服务启动时,必要的后台任务也会运行)正在使用的Web服务器是带有mod_wsgi的Apache 让我们假设一个非常基本的WSGI示例,因为所提供的内容实际上没有问题。我要用Pocoo在 在create_app函数中启动另一个非阻塞执行线程是否可行,该线程将继续执行并按定时间隔执行这
create_app
函数中启动另一个非阻塞执行线程是否可行,该线程将继续执行并按定时间隔执行这些任务?mod_wsgi是否按照要求“连续”运行应用程序
def create_app(redis_host='localhost', redis_port=6379):
app = Shortly({
'redis_host': redis_host,
'redis_port': redis_port
})
#do some other stuff in a separate thread while the webapp is running
task = threading.Thread(target=DBCleanup, args=(query, stuff))
task.start()
return app
阅读:
请参阅中的代码监视器示例:
第一个示例介绍了如何在请求结束和流程结束时清理内容
第二个演示了如何创建后台线程来按周期执行任务,并在进程退出时正确尝试关闭后台线程。为什么WSGI应用程序不能将其作为守护进程启动,并在退出时关闭它?@IgnacioVazquez Abrams我的答案是守护进程的事情让我害怕,这是不是很糟糕?;)从来没有用Python编写过这样的脚本。你知道这方面有什么好的入门读物吗?谢谢
def create_app(redis_host='localhost', redis_port=6379):
app = Shortly({
'redis_host': redis_host,
'redis_port': redis_port
})
#do some other stuff in a separate thread while the webapp is running
task = threading.Thread(target=DBCleanup, args=(query, stuff))
task.start()
return app