uWSGI+Flask+boto——线程安全

2023-12-14

假设我有一个 Flask 应用程序,由 uWSGI 使用多个进程提供服务,例如:

uwsgi --socket 127.0.0.1:3031 --file flaskapp.py --callable app --processes 4

我的 Flask 应用程序是这样组织的:

/flaskapp
    app.py
    /db
        __init__.py
        somefile.py
        somefile2.py
        ...

我正在使用 boto 连接到 DynamoDB。这__init__.py文件为空,并且每个somefilexxx.py文件的开头是这样的:

db = boto.connect_dynamodb()
table = db.get_table('table')
def do_stuff_with_table():

我不在应用程序中使用线程,并且我不认为 uWSGI 使用线程,除非我显式启用它们--threads。这样的设置有意义吗?我是否需要担心 urllib 的任何线程问题(你可能猜我对线程知之甚少......)?

或者,打电话更有意义吗?connect_dynamodb() in the __init__.py文件并仅加载表中的somefile.py files?


由于您尚未在uWSGI中启用线程(请参阅:--enable-threads, --threads)这里没有 Python 线程(在 Boto 或其他地方)。

我建议使用--lazy,这将导致您的应用程序在每个工作人员分叉后加载。然后,您可以简单地依靠该行为来确保每个工作人员都有适当的连接/池/等。无需担心共享状态即可使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uWSGI+Flask+boto——线程安全 的相关文章

随机推荐

  • 在 Google Chrome 扩展程序中使用 Stripe 信用卡表单 - 无法避免“付款不安全?”

    我正在尝试在浏览器弹出窗口中获取一个简单的 Stripe 信用卡表单 以用于 google chrome 扩展 然而 在最新版本的 Chrome 中 信用卡表单始终附有 付款不安全 的消息 付款不安全 我已经在这里阅读了 google ch
  • Python 中的统计累加器

    统计累加器允许执行增量计算 例如 为了计算在任意时间给出的数字流的算术平均值 可以创建一个对象来跟踪当前给出的项目数 n以及它们的总和 sum 当一个人请求平均值时 该对象只是返回sum n 像这样的累加器允许您增量计算 即当给定新数字时
  • 可扩展字符串错误

    我试图在警报对话框中显示一些文本作为超链接 该过程的一部分要求我使用 SpannableString 来格式化一些文本 问题是我的应用程序在代码的 SpannableString 部分遇到运行时错误 TextView Tv TextView
  • 返回承诺时自定义异步验证不起作用

    我正在调用 Web api 来检查 urlalias 是否可用 对于此任务 我在异步验证器中使用 httpservice 问题是 当调用验证器时 将执行所有正确的代码路径 所有console log 运行并按预期运行 验证的承诺是否返回 解
  • 将 calendar_date_select 与 Rails 3 结合使用

    我一直在尝试在注册过程中创建用户出生日期选择字段 代码如下所示 div h3 Register h3 div style width 374px margin 0 auto div div div div div div
  • 在处理传入请求之前,如何在“TISAPIApplication”中建立 ADO 数据库连接?

    TADOConnectionDelphi ISAPI 应用程序的应用程序初始化部分无法连接 TISAPIApplication 应用程序是使用 Delphi XE SPI 构建的 运行 Win 7 64 IIS 7 5 和 WinServe
  • Excel VBA:具有不同文件扩展名的 SaveCopyAs

    我有一个扩展名为 xlsb 的 Excel 文件 并使用其宏根据内容生成其他几个 Excel 工作表 宏的工作方式是更改原始 Excel 文件 然后使用SaveCopyAs方法保存生成的 Excel 工作表 生成的 Excel 工作表应以
  • 发布时如何设置ASPNETCORE_ENVIRONMENT?

    我有几个 WebDeploy 发布配置文件 可将我的 NET Core Web 项目部署到各个位置 开发 QA IIS 上的阶段 为了让应用程序知道它在哪里运行 我需要设置 ASPNETCORE ENVIRONMENT 环境变量 是否可以在
  • 来自特定麦克风的 Web Audio Api 输入

    我正在使用 Web Audio Api navigator getUserMedia audio true function function 进行音频录制 如果用户有多个麦克风设备 我可以选择所需的录音设备吗 我遇到过一个有问题的情况 一
  • 在 sed 中使用美元符号进行变量替换和字符

    我尝试使用 sed 更改名为 fusion gnu 的文件中的一行 我有一个名为lafila 这是一个文件名 目前 我可以这样做 lafila nGas060 dat sed i 6s plot lafila using 1 2 with
  • 即时应用程序模块在另一个非基本模块中搜索资源

    我正在开发一个即时应用程序 它有base模块和 2 个功能模块 feature1 and feature2 当我尝试启动时遇到奇怪的崩溃feature2活动 java lang RuntimeException Unable to star
  • x86除法异常-返回地址

    当尝试在 x86 程序集中为引导加载程序编写一些例程时 我遇到了一个错误 当发生除法错误时 程序将陷入无限循环 通过调查 我发现调用 int 0 会正常通过异常处理程序 然后继续执行程序的其余部分 我自己为 x86 编写了异常处理程序 发生
  • 如何访问 GroupPrincipal 对象上的注释字段

    我使用查询特定域中的所有安全组 PrincipalSearchResult
  • 在批处理文件的参数中转义“、<、>、>> 或 | 等字符

    尝试做 fake command bat ping n 4 w 1 127 0 0 1 gt NUL and fake command bat ping n 4 w 1 127 0 0 1 批处理文件可能如下所示 echo 它应该返回 pi
  • T-SQL BETWEEN 问题最大值优先

    为什么这两个表达式返回不同的结果 这实在是太愚蠢了 SELECT FROM Table WHERE ID BETWEEN 3 AND 1 SELECT FROM Table WHERE ID BETWEEN 1 AND 3 As the 文
  • OpenCV检测人脸特征点(耳朵-下巴-耳朵线)

    我正在寻找一个opencv函数 在python中 检测人脸上的左耳 下巴 右耳线 看起来像抛物线 有没有某种 haarcascade 来做这项工作 我已经知道正面或眼睛的轮廓 但我正在寻找更精确的东西 您正在寻找的称为面部标志检测 您可以尝
  • 使用 Nimbus Look And Feel 时无法在 JTextArea 背景上绘制图像

    我正在绘制图像JTextArea背景 它是使用其他外观和感觉 金属 Windows 等 绘制的 但是当我使用Nimbus外观和感觉它不绘制图像可能是什么问题以及如何解决该问题 这是我正在使用的代码 图片文本区域类 public class
  • 如何在opencv中应用三点三角形渐变?

    假设我们有一个 Delaunay 三角剖分这个 产生于fillConvexPoly on getVoronoiFacetList 里面有三角形 可以通过以下方式获得getTriangleList 我想画德劳内三角剖分 就像它是由三角形组成的
  • 全局变量与局部变量的性能

    我对 Python 还是个新手 并且一直在努力提高 Python 脚本的性能 因此我在使用和不使用全局变量的情况下对其进行了测试 我对它进行了计时 令我惊讶的是 使用声明的全局变量而不是将局部变量传递给函数 它运行得更快 这是怎么回事 我认
  • uWSGI+Flask+boto——线程安全

    假设我有一个 Flask 应用程序 由 uWSGI 使用多个进程提供服务 例如 uwsgi socket 127 0 0 1 3031 file flaskapp py callable app processes 4 我的 Flask 应