当前位置: 首页 > 知识库问答 >
问题:

uWSGI拥有多进程?

薄鸿远
2023-03-14

我用uWSGI运行一个烧瓶服务器。进程由System d启动。

现在我需要一些以“while(True)”运行的子流程,它们必须始终收集一些信息。

我现在开始一个具有多重处理的子过程。

下面是我的一些代码:

from multiprocessing import Process, Value
def start_flask_server():
    daemon_data = Value('d', 0.0)
    p = Process(target=worker, args=(daemon_data, 1))
    p.daemon=True
    p.start()

然后我用systemd重新启动/停止uWSGI,进程阻塞,当然它不受SIG影响。

我的第一个想法是实现一个单音句柄:

for i in [x for x in dir(signal) if x.startswith("SIG")]:
        try:
            signum = getattr(signal,i)
            signal.signal(signum, signal_term_handler)
            app.logger.debug("Added Handler SIG: %s"%i)
        except Exception as e:
            app.logger.error(e)
            app.logger.error("Skipping %s"%i)

但不幸的是,他们没有点火。。。

如果服务器即将关闭,是否会触发事件,或者我是否可以在应用程序中启动一个uWSGI“worker”来执行此任务?

共有1个答案

严瑞
2023-03-14

我有两个反建议:

>

  • 为您的员工创建单独的systemd流程。如果您的工作进程不需要与web进程通信,那么这是可行的,当然,它们可以通过其他协调进程(例如:数据库、Redis、芹菜代理)进行通信。

    使用uwsgi骡子https://uwsgi-docs.readthedocs.io/en/latest/Mules.html

  •  类似资料:
    • 房间类别 长话短说,这一点是为了添加房间,并能够导航它们,捡起物品,然后放下它们。在我尝试运行程序时,我注意到我不能有多个北/南/东/西键。我怎样才能避开这件事,这样我才能把它做好?

    • 问题内容: 是否有Linux库可以使我知道哪些进程拥有哪些IP套接字?我想我正在寻找的程序化等效项。最终,我想将透视的数据包与进程关联起来。 更新: 有人建议使用和,但是在我的系统上,每个进程都显示相同的数据,因此无济于事。 问题答案: 我认为您首先必须浏览/ proc / * / fd中打开的fds,例如 然后在/ proc / net / tcp(或/ proc / net / udp)中查找

    • 我对Android的开发还很陌生。我只是学习它的所有,但感谢我的网络编程背景,它是真的快。 我有一个关于WebViews的问题。当我有一个简单的组件(如图表),但很难用Java绘制时,我就用HTML和CSS构建它,并将它用作WebView。 我的问题看起来像是基于意见的,但我是从表现的角度来问这个问题的。 我想知道,拥有几个简单的webviews对性能有何影响?我知道几乎所有的东西都有库,但是当我

    • 我需要三个实体——用户、订单和产品。订单可以有多个产品,产品可以有多个订单。但是在一个订单中,我们可以有几个相似的产品。如何使用Hibernate来组织它? 我认为其中一种方法是创建另一个实体-OrderProducts,但是我需要使用什么映射?或者有另一种简单的方法可以做到这一点吗? Order.java 产品Java语言 我需要order_products表有数量列,但我不知道怎么做。

    • uWSGI 是在像 nginx 、 lighttpd 以及 cherokee 服务器上的一个部署的选 择。更多选择见 FastCGI 和 独立 WSGI 容器 。 你会首先需要一个 uWSGI 服务器来用 uWSGI 协议来使用你的 WSGI 应用。 uWSGI 是 一个协议,同样也是一个应用服务器,可以提供 uWSGI 、FastCGI 和 HTTP 协议。 最流行的 uWSGI 服务器是 uw

    • uWSGI 是一个快速的、纯C语言开发的、自维护的、对开发者友好的 WSGI 服务器,旨在提供专业的 Python web应用发布和开发。可使用 C/C++/Objective-C 来为 uWSGI 编写插件。 架构图: 与 Gunicorn 的性能比较: 配置方法: LoadModule uwsgi_module     libexec/apache2/mod_uwsgi.so<Location