如何在 CherryPy 中执行异步后处理?

2024-02-07

Context:想象一下您有一个标准的 CherryPy hello word 应用程序:

   def index(self):
      return "Hello world!"
   index.exposed = True

并且您想要进行一些后处理,即记录请求处理或仅记录从特定 IP 调用我们的事实。你会做的可能是:

def index(self):
   self.RunMyPostProcessing()
   return "Hello world!"
index.exposed = True

但是,这会增加您的请求处理时间。 (顺便说一句。如果您想在每个函数上调用它,您可能会使用装饰器,甚至一些更复杂的方法)。

问题:有没有一种方法可以创建一个全局线程感知队列(缓冲区),每个请求都可以向其中写入需要记录的消息(事件),而一些神奇的函数将捕获它并进行后处理?你知道这样的事情的模式吗?

我打赌 CherryPy 支持类似的东西:-)

先感谢您...


“全局线程感知队列”称为Queue.Queue。

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

如何在 CherryPy 中执行异步后处理? 的相关文章

随机推荐

  • ora_rowscn 和 join 不能一起工作

    SELECT Rental Rental ora rowscn as TimeStamp FROM Rental inner join UserBranch on UserBranch fkBranchId Rental fkBranchI
  • JavaFX 对背景的影响

    我在用着this https stackoverflow com questions 22622034 frosted glass effect in javafx 22630754 22630754制作一个带有毛玻璃效果的iOS主题Jav
  • JavaScript 函数后的空格[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何按文件名和编号对文件列表进行排序?

    我在一个目录中有一堆文件 我试图根据它们的类型来获取它们 一旦我拥有它们 我想按文件名对它们进行排序 其中有一个数字 我想以这种方式对它们进行排序 我返回的文件是 file 1 txt file 2 txt file 10 txt file
  • C++ 未打印字符串

    抱歉这个菜鸟问题 我是一名新手程序员 正在从 C 过渡到 C 我可以轻松地编写一个程序 以相同的方式用 C 语言反转字符串 只需进行一些细微的更改 但是用 C 编写此程序 为什么它不打印任何内容 include
  • 如何让 Nock 和 Mocha 协同工作?

    我正在尝试使用 nock 来拦截 模拟我的应用程序中的一些 HTTP 流量以进行测试 我们的应用程序对我们的另一个网站进行身份验证 我需要 nock 来模拟 HTTP 200 带有 JSON 数据 和 HTTP 401 没有数据 来测试用户
  • dotnet core 方法“ValidateOptions”...没有实现

    我正在构建一个 NET Core 解决方案 该解决方案构建得很好 但是当我尝试发布它时 它崩溃并出现以下错误 Method ValidateOptions in type Microsoft CodeAnalysis CSharp CSha
  • Google Play Alpha 测试 - 无可用更新

    我已经有一段时间没有更新我的 Android 应用程序了 现在我想使用 Alpha 测试来运行应用内购买功能的一些测试 问题是 我不知道如何使用 Play 商店在我的设备上安装 Alpha 版本 我做了以下事情 创建APK于Android
  • 更改嵌套在克隆表中的输入/选择字段的名称属性以进行动态表单输入 - Javascript

    我正在设计一个动态输入表单 它本质上充当用户 GUI 用于在 mysql 数据库中创建表 JavaScript var counter 0 function moreFields counter var newFields document
  • 如何在Python中初始化二维数组?

    我已经得到了伪代码 for i 1 to 3 for j 1 to 3 board i j 0 next j next i 我如何在 python 中创建这个 想法是使用 for 循环创建一个 3 x 3 数组 并将所有元素设置为 0 如果
  • GeoPandas 和 OSMnx - 在地图上绘制

    我想在地图上绘制我的 Geopandas df 作为背景 我想要该地区的 道路 地图 喜欢 OSMnx 包 我试图弄清楚如何使用它的输出 shapefile 网络 作为我的情节背景 import osmnx as ox G ox core
  • Response.Redirect 与 Server.Transfer - 重定向作为“建议”

    所以我读了一篇article http www csharpfriends com Articles getArticle aspx articleID 15在 Response Redirect 上 与 Server Transfer 相
  • iOS Facebook 获取用户的电子邮件

    我尝试了 2000 多种方法来获取用户的电子邮件 我无法从 Facebook SDK 的图形 API 获取它 它不包含电子邮件属性 我还尝试手动将电子邮件属性添加到 FB 框架 但没有任何反应 是否可以下载第一个与 iOS 7 兼容的 FB
  • R中如何合并表?

    我想这会有一个简单的答案 但我无法解决 这是一个使用的示例iris数据集 a lt table iris 2 b lt table iris 3 如何将这两个表添加到一起 例如 在新输出表中 变量 3 的值为 27 26 1 变量 3 3
  • 在 Tomcat 中使用 Spring 通过 JMX 公开 Hibernate(缓存)统计信息

    收集 Hibernate Ehcache 统计信息并在基于 Spring 的设置中通过 JMX 公开它们似乎很容易 互联网有很多资源可以帮助您 例如http snippets dzone com posts show 11159 http
  • 在bash中重复打印一个字符[重复]

    这个问题在这里已经有答案了 有没有办法在 bash 中重复打印相同的字符 就像您可以使用此构造在 python 中执行此操作一样 print 3 gives 实际上有一个单行代码可以做到这一点 printf 0 s 1 10 prints
  • VB6 .frm 文件格式属性无故更改!

    我们 我们的公司 注意到 在从不同用户 机器将代码签入到我们的存储库之间 VB6 表单文件内的 Format 属性不断变化 即使我们没有在 PC 上更改任何内容 之前 格式 82182147 之后 格式 69337091 它给我们的源代码比
  • 数据帧子集性能

    我有几个大型数据帧 100 万行以上 x 6 10 列 需要重复进行子集化 子集部分是我的代码中最慢的部分 我很好奇是否有办法更快地做到这一点 load https dl dropbox com u 4131944 Temp DF IOST
  • Pascal 对象:如何进行类型化前向声明?

    我正在将很棒的 fmod C 标头翻译为 Pascal 但由于前向声明而陷入困境 如果我声明该函数before类型 错误为 FMOD CODEC STATE 未知 如果我声明 FMOD CODEC STATEbefore该函数 错误为 FM
  • 如何在 CherryPy 中执行异步后处理?

    Context 想象一下您有一个标准的 CherryPy hello word 应用程序 def index self return Hello world index exposed True 并且您想要进行一些后处理 即记录请求处理或仅