Python uwsgi后台处理程序是如何工作的?
我需要一个任务队列,以便在不影响用户的情况下将一些繁重的操作移出uwsgi上下文。由于目前正在使用uwsgi,我认为可以使用uwsgi后台处理程序。我想知道它到底是怎么工作的?假脱机任务是否仍在其他uwsgi工作程序中执行?如果是,那么服务器仍然会过载,因为其他工作人员将忙于处理假脱机任务。有更好的选择吗?我正在使用python参考: 每个假脱机程序都是一个不同的进程,旨在运行以目录(假脱机目录)中的文件形式排队的任务。多个假脱机程序进程(每个uWSGI实例)可以位于同一假脱机目录上,以并行化任务组,并且可以配置多个假脱机目录(以具有不同的任务组) spooler方法是非常低级的,但不需要维护(最终删除任务只需管理一个文件),而且非常可靠 我所知道的python世界中唯一的选择(很可能是最常用的)是芹菜Python uwsgi后台处理程序是如何工作的?,python,message-queue,uwsgi,task-queue,Python,Message Queue,Uwsgi,Task Queue,我需要一个任务队列,以便在不影响用户的情况下将一些繁重的操作移出uwsgi上下文。由于目前正在使用uwsgi,我认为可以使用uwsgi后台处理程序。我想知道它到底是怎么工作的?假脱机任务是否仍在其他uwsgi工作程序中执行?如果是,那么服务器仍然会过载,因为其他工作人员将忙于处理假脱机任务。有更好的选择吗?我正在使用python参考: 每个假脱机程序都是一个不同的进程,旨在运行以目录(假脱机目录)中的文件形式排队的任务。多个假脱机程序进程(每个uWSGI实例)可以位于同一假脱机目录上,以并行化任
否则,您可以依赖久负盛名的redis+守护进程线程方法,其中python线程使用redis中排队的任务。最终,您可以使用uWSGI mule(类似于工作线程,但没有外部访问)而不是线程来执行任务。uWSGI后台处理程序是uWSGI中内置的队列管理器,其工作方式类似于打印/邮件系统。这种方法是非常低级的,但它确实是可靠的 Python最流行的队列是芹菜,它提供了广泛的任务管理选项和功能。不幸的是,基于芹菜的系统并不是最容易保持和运行的,当事情进展不顺利时,问题通常就不那么容易找到。您可以询问任何DevOps工程师关于芹菜的经验,但要准备好接受一些苛刻的话 幸运的是,有一个替代方案:uWSGI后台处理程序,这就是我们将在今天的文章中讨论的内容 uWSGI Spooler和芹菜之间的主要区别在于前者不需要任何附加组件(例如芹菜可能需要像Redis这样的存储系统),这将故障点减少了一半。任务可以存储在目录、外部目录或网络池中 因此,有一个“必读”参考列表: