相关疑难解决方法(0)

如果我退出C#中的try/finally块,那么finally中的代码总会运行吗?

它看起来像是根据一些初步测试,但我想知道的是,如果它保证返回或在某些情况下它不能返回?这对我的应用程序至关重要,但我还没有找到一个用例,但它不会返回.
我想获得有关该主题的专业知识.

c# try-catch-finally

18
推荐指数
3
解决办法
1万
查看次数

使用 Gunicorn + Nginx 在 Flask 请求中进行 Python 多处理

我想构建一个能够处理的服务:

  • 请求量少
  • 每个请求的高计算成本
  • 但是可以并行化高计算成本的地方。

我对 pre-fork 服务器的理解是会发生以下类似的事情:

  1. 服务器启动
  2. Gunicorn 创建多个 OS 进程,也称为 worker,准备接受请求
  3. 请求进来。Nginx 转发给 Gunicorn。Gunicorn 发送给其中一名工人。

我想了解的是,如果在我的 Flask 代码中处理请求时,会发生什么:

from multiprocessing import pool as ProcessPool
with ProcessPool(4) as pool:
    pool.map(some_expensive_function, some_data)
Run Code Online (Sandbox Code Playgroud)

特别是:

  1. 是否会启动其他操作系统进程?加速会如我所愿吗?(即,类似于我在 Flask 生产环境之外运行 ProcessPool 的情况?)如果 Gunicorn 创建了 4 个 web worker,那么现在是否会运行 7 个操作系统进程?9?是否有制作过多的风险?Gunicorn 是否假设每个工人都不会分叉或不在乎?
  2. 如果 web-worker 在启动 ProcessPool 后死亡或被杀死,上下文管理器会正确关闭它吗?
  3. 这是明智的做法吗?有哪些替代方案?

python process nginx flask gunicorn

9
推荐指数
1
解决办法
416
查看次数

标签 统计

c# ×1

flask ×1

gunicorn ×1

nginx ×1

process ×1

python ×1

try-catch-finally ×1