python webapp使用多个进程/工作服务器和看门狗线程运行

2024-04-23 14:50:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助了解如何处理以下情况:

在(Django)web应用程序启动期间,watchdog观察器线程也在后台运行。如果watchdog检测到文件夹中有新文件,它会将文件移动到另一个位置。在

虽然它可以很好地与Django runserver——noreload一起工作,但当我在autoreload模式下运行runserver时,它会中断。我想如果我用uwsgi和多个工人一起运行,也会出现同样的问题。在

为什么会断?因为每个进程都会收到有关新文件的通知,如果其中第一个进程将该文件移到另一个位置,则第二个进程将中断:

OSError: [Errno 2] No such file or directory: 

错误与应该被移动的文件有关,但是它不在那里,因为文件已经被移动了。在

第一个问题是:runserver的autoreload模式是否类似于有2个worker的uwsgi?在

第二:怎么处理?在

我知道我在过去经历过与不同用例相关的类似的挑战(没有watchdog的参与和uwsgi),我想知道你们是否可以帮助我学习如何处理这样的场景。也许你对这个话题有一些很好的了解。在

谨致问候, 奥克鲁尼


Tags: 文件django文件夹web应用程序进程模式情况