有没有办法可以保留子线程的上下文局部变量?

2024-07-01

目前,我创建了一个库来记录后端调用,例如对boto3 and requests库,然后根据一些数据(例如响应的状态代码等)填充全局“数据”对象。

我原来有data对象作为全局的,但后来我意识到这是一个坏主意,因为当应用程序并行运行时,data对象同时被修改(这可能会损坏它),但是我想为应用程序的每次调用保留该对象。

因此,我研究了 Flask 上下文局部变量,类似于它对其全局“请求”对象的处理方式。我设法使用 LocalProxy 实现一种方法他们是怎么做到的 https://stackoverflow.com/a/38945407/10237506,所以它现在可以很好地处理对我的应用程序的并行请求 - 但现在的问题是,每当应用程序生成一个新的子线程时,它都会创建一个全新的上下文,因此我无法检索data来自其父线程的对象,例如对于该请求会话 - 基本上我需要复制和修改相同的内容data该特定应用程序请求的主线程本地对象。

澄清一下,我以前能够做到这一点data作为真正的“全局”对象 - 多个子线程可以正确修改同一对象。然而,正如我所提到的,它不处理同时向应用程序发出请求的情况;所以我设法解决这个问题,但现在子线程无法修改相同的内容data不再反对*悲伤的脸*

我查看了如下所示的一些解决方案,但这对我没有帮助,因为装饰器方法仅适用于“本地”函数。由于我需要装饰的函数是“全局”函数,例如requests.request跨各种应用程序请求的线程将使用,我认为我需要使用另一种方法,我可以临时复制相同的线程上下文以在子线程中使用(我的理解是它不应该覆盖或装饰函数,因为这是一个“全局”,将由对应用程序的同时请求使用)。我将不胜感激任何帮助或可能的想法,如何使这项工作适合我的用例。 谢谢。

启动子线程时,Flask 抛出“在请求上下文之外工作” https://stackoverflow.com/questions/9931738/flask-throwing-working-outside-of-request-context-when-starting-sub-thread


None

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

有没有办法可以保留子线程的上下文局部变量? 的相关文章

  • 持久子进程.Popen 会话

    我正在尝试运行一个命令 然后在同一环境中运行另一个命令 比如说 如果我在第一个命令中设置环境变量 我希望它可用于第二个命令 我试过这个 import subprocess process subprocess Popen echo test
  • pandas.algos._return_false 在 CentOS 上使用 dill.dump_session 导致 PicklingError

    我有一个代码框架 其中涉及使用 dill 转储会话 这曾经工作得很好 直到我开始使用 pandas 以下代码在 CentOS 6 5 版本上引发 PicklingError import pandas import dill dill du
  • 使用脚本取消设置 PDF 字体

    我正在使用 xhtml2pdf 库自动创建 PDF 几个月前我有过这个问题 https stackoverflow com questions 25203219 xhtml2pdf doesnt embed helvetica 库嵌入了我没
  • 如何使用 TfIdfVectorizer 通过 SciKitLearn 对文档进行分类?

    以下示例展示了如何使用 Sklearn 20 新闻组数据训练分类器 gt gt gt from sklearn feature extraction text import TfidfVectorizer gt gt gt categori
  • Python,将 mongodump 的 bson 输出转换为 json 对象数组(字典)

    我已经使用转储了 mongodb 集合mongodump命令 输出是一个转储目录 其中包含以下文件 dump coll bson coll metadata json 如何将导出的文件打开到在 python 中工作的字典数组中 我尝试了以下
  • 在Python中使用argparse解析整个JSON

    我正在尝试使用 ARGPARSE 库在一个简单的参数中解析整个 Json 问题是当它遇到儿子内部的不同元素 例如 和 时 它会突然停止 这是测试代码 parse py import argparse parser argparse Argu
  • Python 内存使用情况

    因此 我有一些代码接收一组文件 将其可以缝合在一起 然后绘制它们 我发布了大部分代码 试图使其更具可读性 如果需要 可以添加更多代码 for paths dirs files in os walk start path for d in d
  • 在django中使用pre_save时取消保存模型

    我有一个模型 class A models Model number models IntegerField 但是当我调用 A save 时 我想确保该数字是素数 或其他条件 否则应该取消保存指令 那么如何取消pre save信号接收器中的
  • Python 中的一维马哈拉诺比斯距离

    我一直在努力validate我的计算代码马哈拉诺比斯距离写在Python 并仔细检查以比较 OpenCV 中的结果 我的数据点均为 1 维 5 行 x 1 列 In OpenCV C 我成功计算了马哈拉诺比斯距离方面数据点的尺寸为上述尺寸
  • 从周数获取日期

    请问我的代码有什么问题 import datetime d 2013 W26 r datetime datetime strptime d Y W W print r 显示 2013 01 01 00 00 00 谢谢 周数不足以生成日期
  • tqdm 进度条和 colorama 不能一起工作

    我想使用 colorama 但我已经在代码中使用了 tqdm Example import colorama as color import tqdm as tqdm without line it s working print colo
  • 在窗口中定位画布 - Tkinter/python

    有没有办法将画布放置在窗口中并在其周围放置一个框架 我只找到了如何在画布内放置对象 您可以创建一个框架 然后将您的小部件放入其中 f tk Frame c1 tk Canvas f c2 tk Canvas f c1 pack side l
  • 如何获取Python日志模块当前正在记录的文件?

    有没有办法做到这一点 如果logging config fileConfig some log 是setter 什么是getter 只是好奇这是否存在 对于我对单个文件日志的基本用法 这有效 logging getLoggerClass r
  • Python pandas 使用 read_hdf 和 HDFStore.select 从 HDF5 文件读取特定值

    所以我使用一个简单的数据集创建了 hdf5 文件 如下所示 gt gt gt pd read hdf STORAGE2 h5 table A B 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 使用这个脚本 import pan
  • python中1+1可以等于3吗? [复制]

    这个问题在这里已经有答案了 在继续之前 我知道人们应该never做这个 这个问题纯粹是出于教育目的 我进行这个练习是为了更好地理解 python 的内部结构ctypes 以及它们如何工作 我知道在 python 中更改整数的值相对容易 其实
  • Python:使用用户输入作为类名的类工厂

    我想动态地将类属性添加到超类 此外 我想创建动态继承自该超类的类 并且这些子类的名称应取决于用户输入 有一个超类 Unit 我可以在运行时向其添加属性 这已经有效了 def add attr cls name value setattr c
  • Pandas:获取重复索引

    给定一个数据帧 我想获取重复的索引 这些索引在列中没有重复的值 并查看哪些值不同 具体来说 我有这个数据框 import pandas as pd wget https www dropbox com s vmimze2g4lt4ud3 a
  • Selenium 不打开指定的 URL 并显示数据:,

    我正在尝试在 chrome 中使用 selenium 打开 URL 我有 chromedriver 可用 以下是我要执行的代码 from selenium import webdriver chrome options webdriver
  • 在 Mac 上安装 TensorFlow 时出现问题

    我正在尝试遵循安装指南张量流组织 http www tensorflow org get started os setup md并因此使用 Homebrew 再次安装了 Python 版本 2 当我按照描述运行安装时 pip install
  • OpenCV中如何在点之间画线?

    我有一个元组数组 a 375 193 364 113 277 20 271 16 52 106 133 266 289 296 372 282 OpenCV中如何在点之间画线 这是我的代码不起作用 for index item in enu

随机推荐

  • Python 文件打开并立即关闭

    尝试首先通过 powershell 然后通过 cmd 运行此代码 甚至简单地单击它 我正在输入 start python myfile py 来运行它 在每种情况下 文件都会在屏幕上闪烁并立即关闭 我查看它的唯一方法是将文件直接拖到cmd中
  • 如何反向遍历 C# 集合?

    是否有可能有一个foreach将以相反顺序遍历 Collections 对象的语句 如果不是foreach声明 还有其他方法吗 你可以用普通的for向后循环 如下所示 for int i collection Count 1 i gt 0
  • 如何获取 Tkinter 标签文本?

    我正在制作一个用户将从中选择的地址列表 并且将返回地址文本 我需要使用Tkinter Label因为Tkinter Listbox不允许换行 关键是没有 get Label 类中的类似方法 我知道我可以做类似的事情 v StringVar
  • 在进程之间共享列表的正确方法?

    我想设置两个子流程 其中subprocess1不断生成数据 类型为list and subprocess2负责处理发来的数据subprocess1 I used multiprocessing Manager list 创建共享列表 但这是
  • 如何使用 Sublime Text 2 让rails_footnotes 打开文件?

    我不是问如何告诉脚注如何做到这一点 我在initializers footnotes rb file Footnotes Filter prefix txmt open url file s line d column d 我的问题是应该用
  • 如何在不缓冲的情况下从 WCF 流式传输响应?

    我有一个宁静的 webHttpBinding 自托管WCF服务 大多数方法都会向客户端返回 xml 或 json 版本的对象 我有几个触发长时间运行的方法的 GET 方法 我想将日志响应流式传输到浏览器 或应用程序 以便用户知道发生了什么
  • Oreo 8.0 -“sendTextMessage()”未将消息保存到已发送文件夹

    我尝试使用 sendTextMessage 或 sendMultipartTextMessage 从我自己的应用程序发送短信 对于高于 API 19 KitKat 的手机 此消息将保存到已发送文件夹中 然而 在我的 Android 8 0
  • Recaptcha - 表单定制

    有谁知道 recaptcha 是否可以在没有默认框架的情况下完全自定义 我需要验证码图像和输入字段只有一定的宽度 以前有人成功做到过吗 您可以使用 自定义 主题选项指定自定义标记 方法是在页面上包含类似以下内容 然后 您在页面上创建一个 d
  • 使用具有聚类数据的小鼠进行插补

    所以我正在使用mice用于估算缺失数据的包 我是插补新手 所以我已经到了一定程度 但遇到了陡峭的学习曲线 举一个玩具例子 library mice Using nhanes dataset as example df1 lt mice nh
  • Maven 配置文件并安装

    如果我为一个应用程序设置了 Maven 构建 并为不同的环境设置了配置文件 比如 prod 与 dev 定义不同的数据库设置等 那么 安装 目标似乎没有意义 因为我不这样做不知道我的存储库中安装了哪个环境 我刚刚获得 com example
  • 在 scipy 中按稀疏矩阵分组并返回一个矩阵

    关于使用 SO 处理有几个问题groupby与稀疏矩阵 然而输出似乎是列表 字典 https stackoverflow com questions 35410839 group by on scipy sparse matrix 数据框
  • C++:空类的对象的大小是多少?

    我想知道可能是什么空类对象的大小 肯定可以not为 0 字节 因为它应该可以像任何其他对象一样引用和指向它 但是 这样的物体有多大呢 我用了这个小程序 include
  • GNAT 编程套件 - 未找到源文件

    Ada 对我来说还是个新手 所以我正在尝试找到 GPS IDE 的方法 我之前问了另一个问题 但我认为这个问题优先于那个问题 并且可能是我麻烦的根源 当我编译时 我收到一长串 警告 源文件 未找到 在我的 gpr 文件中 我列出了所有规范和
  • 在 AngularJS 模型更改后更新 MathJax

    我正在尝试使用 AngularJS 双向绑定文本 其中包括 Latex 样式方程 我想调用 MathJax 来格式化方程 但我不确定确保 AngularJS 完成更改模型后调用 MathJax 的最佳方法 我想我需要回电 这是我的 Java
  • 如何在WAMP服务器中使用.htaccess?

    我在网上搜索了 2 天 我尝试在本地 wamp 中使用 htaccess 但我不能 我知道有问题 但不知道问题出在哪里 First 我激活了 重写模块 在 apache 菜单中 然后我检查了 phpinfo 页面 我看到该模块添加到了它的
  • NServiceBus 重试延迟

    配置 编码的最佳方式是什么N服务总线 http particular net nservicebus延迟重试消息 在其默认配置中 重试几乎立即发生 最多达到配置文件中定义的尝试次数 理想情况下 我想在一小时后重试 等等 另外 如何Handl
  • jQuery - 如何替换单击元素上的 img src?

    HTML div a href path to image1 jpg img src scripts timthumb php src path to image1 jpg w 200 h 20 alt Image name1 a div
  • 在 Bookdown 上指定 csl 后自定义或删除参考标题

    I specified a csl bibliography style as described by this method https stackoverflow com questions 50652853 how to speci
  • 正则表达式匹配 Java 中的未转义逗号

    问题描述 我试图使用 String 类提供的 split 方法将 a 拆分为单独的字符串 文档告诉我 它将围绕参数的匹配进行拆分 参数是正则表达式 我使用的分隔符是逗号 但逗号也可以转义 我使用的转义字符是正斜杠 只是为了让事情变得更容易
  • 有没有办法可以保留子线程的上下文局部变量?

    目前 我创建了一个库来记录后端调用 例如对boto3 and requests库 然后根据一些数据 例如响应的状态代码等 填充全局 数据 对象 我原来有data对象作为全局的 但后来我意识到这是一个坏主意 因为当应用程序并行运行时 data