将 Post 或 PostAndAsyncReply 与 F# 的 MailboxProcessor 一起使用吗?

2024-01-11

我见过不同的片段展示了Put返回的消息unit与 F# 的MailboxProcessor。在某些情况下,仅Post方法被使用而其他人使用PostAndAsyncReply,一旦消息被处理,回复通道立即回复。在进行一些测试时,我发现等待回复时存在明显的时间滞后,因此似乎除非您需要真正的回复,否则应该使用Post.

注意:我开始问这个问题另一个线程 https://stackoverflow.com/a/8482495/29439但认为作为完整问题发布很有用。在另一个线程中,Tomas Petricek 提到回复通道可以使用等待机制来确保调用者延迟到Put消息已处理。

是否使用PostAndAsyncReply帮助消息排序,或者只是强制暂停,直到处理第一条消息?在性能方面Post出现正确的解决方案。准确吗?

Update:

我只是想到一个理由PostAndAsyncReply可能需要在BlockingQueueAgent example https://github.com/fsharp/fsharpx/blob/master/src/FSharpx.Async/Agents/BlockingQueueAgent.fs: Scan用于查找Get当队列已满时消息,所以你不想Put进而Get在上一个之前Put已完成。


我的建议是设计你的系统,以便你可以使用Post越多越好。

该技术专为异步并发而设计,其目标是“即发即忘”消息。等待响应的想法直接违背了这一点。

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

将 Post 或 PostAndAsyncReply 与 F# 的 MailboxProcessor 一起使用吗? 的相关文章

  • 在 x86-64 CPU 上通过交叉修改代码重现意外行为

    Question 对于可能在 x86 或 x86 x64 系统上触发意外行为的交叉修改代码有哪些想法 在这些系统中 交叉修改代码中的所有操作均已正确完成 但在执行处理器之前执行序列化指令除外修改代码 如下所述 我有一个 Core 2 Duo
  • f# 运行总计序列

    好吧 这看起来应该很容易 但我就是不明白 如果我有一个数字序列 如何生成由运行总计组成的新序列 例如 对于序列 1 2 3 4 我想将其映射到 1 3 6 10 以适当的功能方式 Use List scan https msdn micro
  • Intel 64 和 IA-32 上的 MESI 有何意义

    MESI 的要点是保留共享内存系统的概念 然而 对于存储缓冲区 事情就变得复杂了 一旦数据到达 MESI 实现的缓存 下游内存就会保持一致 然而 在此之前 每个核心可能对内存位置 X 中的内容存在分歧 具体取决于每个核心的本地存储缓冲区中的
  • 使用 SqlBulkCopy 和 F# 在 SQL 中导出矩阵

    我想将大量数据从 F 传输到 SQL 表 基本上我的 F 代码创建了一个三列矩阵 UserID ProductID and price 和N行 我想将其 复制 粘贴 到数据库中 我尝试了多种选择 但最终 从 F 传输数据非常慢 10000
  • 从 C# 调用高阶 F# 函数

    给定 F 高阶函数 在参数中采用函数 let ApplyOn2 f int gt int f 2 和 C 函数 public static int Increment int a return a 我怎么打电话ApplyOn2 with I
  • Openresty 中的并发模型是什么?

    我很难理解 openresty 或 nginx 的并发模型 我读了Lua变量作用域 http wiki nginx org HttpLuaModule Lua Variable Scope 它解释了变量的生命周期 但它没有说明对它们的并发访
  • 我怎么知道我的所有 goroutine 确实正在使用 golang 的同步包等待一个条件

    我有一个应用程序 我正在创建多个 goroutine 来同时执行某个任务 所有工作协程都会等待条件 事件发生 一旦事件被触发 它们就会开始执行 创建完所有goroutines后 主线程在发送广播信号之前应该知道所有goroutines确实处
  • 单线程程序中可以有竞争条件吗?

    您可以在here https en wikipedia org wiki Race condition Software关于什么是竞争条件的一个很好的解释 我最近看到很多人对竞争条件和线程做出了令人困惑的陈述 我了解到竞争条件只能发生在线程
  • 可能的 std::async 实现错误 Windows

    看来 std async 的 Windows 实现存在错误 在重负载下 大约每秒启动 1000 个异步线程 异步任务永远不会被调度 并且等待返回的 future 会导致死锁 请参阅这段代码 使用延迟启动策略而不是异步进行修改 Bundlin
  • 断点会停止所有线程吗?

    如果我的程序中有两个线程同时运行 并在其中一个线程上设置了断点 那么当遇到此断点时 另一个线程也会停止 还是会继续执行 我用 Java 编写并使用 NetBeans 断点可以选择它们的行为方式 挂起单个线程或所有线程
  • 在 Deedle 系列中算得上独一无二

    我想对我的数据框中的系列有一个概述 例如 pandas 的唯一值计数 我不知道是否有内置函数可以实现这一点 到目前为止 我已经完成了一个函数来获取不同特征的数量 我可以设法完成这项工作 我的问题只是关于内置功能 let unique s D
  • 在 F# 类型提供程序中发出生成的类型

    我创建了一个简单的生成类型提供程序 它采用重新组织类型的程序集的路径 将它们置于类型提供程序命名空间下 如果您愿意 可以说是内部化 相关代码的链接在这里https github com colinbull Playground https
  • “不等于”的 F# 语法是什么?

    在 C 代码中 它会是这样的 if c 0 some code 那么在 F 中呢 From MSDN 有关 F 算术运算符的页面 http msdn microsoft com en us library dd469493 aspx 看起来
  • Meteor.setTimeout 和 Meteor.methods 之间的并发

    在我的 Meteor 应用程序中实现回合制多人游戏服务器 客户端通过发布 订阅接收游戏状态 并且可以调用 Meteor 方法sendTurn将回合数据发送到服务器 他们无法直接更新游戏状态集合 var endRound function g
  • 如何使 FSI 在 NET5 下工作并让愚蠢的 stackoverflow 消息“标题不能包含...”闭嘴?

    我正在将一个相当小的 F 项目从 Net Framework 迁移到 NET5 迁移非常简单 一切正常 包括测试 但是 当我运行一些脚本时 我现在收到以下错误 Microsoft R F Interactive version 11 0 0
  • F# 尝试处理未处理的异常

    在下面的代码中 我想读取一个文件并返回所有行 如果存在 IO 错误 我希望程序退出并将错误消息打印到控制台 但程序仍然遇到未处理的异常 对此的最佳实践是什么 我想我不需要Some None因为无论如何我都希望程序在错误时退出 谢谢 let
  • 如何记录来自 Akka (Java) 的所有传入消息

    在 Scala 中 您可以使用 LoggingReceive 包装接收函数 如何通过 Java API 实现相同的目标 def receive LoggingReceive case x do something Scala API 有Lo
  • 将事件绑定到 ItemsControl 中的按钮

    我有一个 Windows Phone 7 应用程序 其中包含一些 xaml 如下所示
  • 如何编写一个计算表达式生成器来累积值并允许标准语言构造?

    我有一个计算表达式生成器 可以随时生成值 并且有许多自定义操作 但是 它不允许标准 F 语言构造 并且我在弄清楚如何添加此支持方面遇到了很多麻烦 举一个独立的例子 下面是一个非常简单且毫无意义的构建 F 列表的计算表达式 type Item
  • F# 和 MEF:导出函数

    因此 我试图在 F 控制台应用程序中运行这个简单的测试 open System Reflection open System ComponentModel Composition open System ComponentModel Com

随机推荐

  • 使用jquery每5秒切换一次类1秒

    如何每 5 秒切换一次课程 1 秒 这是我想要的动作 只需要让它发生 1 秒 每 5 秒一次 donate toggleClass wiggle 使用以下内容 setInterval function toggle the class ev
  • javax.resource.ResourceException:IJ000460:检查事务时出错

    我有以下服务方法 public List
  • 将存储为文本的数字转换为数字

    我有一个 Excel 工作簿 其中 C 列作为数字存储为文本 将其转换为数字的 C 语法是什么 我知道这个 VBA 可以完成这项工作 Range C C Select With Selection Selection NumberForma
  • Android 版 Air 忽略外部 swf 文件

    我正在开发一些从应用程序目录加载外部 swf 的应用程序 问题是一些 swf 文件被正确加载 而另一些则给出 ioerror url not found 我将路径放入数组中并使用加载器加载路径 var arr Array Games 1 s
  • Vue Cli 3 项目不会生成manifest.json (PWA)

    我有一个 Vue Cli 3 项目 vue cli plugin pwa安装并配置插件 在vue config js 但是当我跑步时vue cli service build modern no manifest json是根据我的配置生成
  • python 可以添加、运行和删除 VBA 宏到 excel 而无需中间保存步骤吗?

    我有一个长期运行的 python 管道 可以生成 pandas 数据帧 简而言之 我想 在Excel中显示pandas数据框 添加并运行 VBA 宏 删除 VBA 宏并将 新格式化的 输出另存为 xslx 挑战是我不知道如何做到这一点没有中
  • 让函数在用户将鼠标悬停在链接上 2 秒后执行

    是的 我知道这个问题以前曾被问过 但我找不到有效的答案 这是其他问题之一的公认答案 element hover function this data timeout window setTimeout function alert hove
  • 设置 Android Things 时区

    在 Raspberry Pi 上安装 Android Things 后 时间不正确 我的时区是 GMT 2 并且使用date Z我看到 RPi 的时区是 GMT 如何设置时区 更新 基于米哈尔 哈拉卡尔 https stackoverflo
  • 如何使用 Visual Studio 2010 编写静态 ansi-c 库

    当我在 VS2010 中编写和编译 lib 文件时 我缺少一些东西 我不知何故没有正确标记它们以供导出 控制台命令dumpbin exe headers mylib lib gt stackoverflow txt生成以下输出 我删除了空行
  • 全屏 YouTube 视频、旋转和状态栏 (iOS)

    我在当前的项目中遇到了一个问题 因此我开发了一个简单的应用程序来看看是否可以隔离问题 在我的应用程序委托中 我隐藏了状态栏 application setStatusBarHidden YES animated NO 在我的单视图控制器中
  • Cassandra(复制因子:2,节点:3)和轻量级事务

    我们有一个运行 3 个节点且复制因子为 2 的 cassandra 集群 gt 也许我们应该从一开始就选择 3 但事实并非如此 因此 我们的法定人数 2 2 1 2 假设我们丢失了一个节点 所以现在只有两个 cassandra 节点在线 如
  • Android:不同风格的不同权限

    我有一个具有两种口味的应用程序 只有其中一种需要一些权限 在构建 apk 期间 如何仅针对此风味请求这些权限 这些是所需的权限
  • 类型错误:无法使用灵活类型执行reduce

    我一直在使用 scikit learn 库 我正在尝试使用 scikit learn 库下的高斯朴素贝叶斯模块 但遇到以下错误 类型错误 无法使用灵活类型执行reduce 下面是代码片段 training GaussianNB traini
  • C# 编译器结果在内存中生成?

    我一直在关注这个StackOverflow问题 https stackoverflow com questions 2830160 c sharp referencing a type in a dynamically generated
  • mod_rewrite 规则删除 #!来自网址?

    我正在构建一个带有ajax加载的javascript应用程序 如果任何用户访问其中包含hashbang的URL 我想重写该URL并将其删除 我对 mod rewrite 不太熟悉 但我尝试了一下 RewriteCond REQUEST UR
  • 使用 ggplot 或 R 中的任何其他方法根据计数绘制线宽(大小)

    我有一个长格式的数据集 每个ID 走 3步 每一步 变量名称是step 可以降落在不同的位置 变量名称是里程碑 我想绘制所有路径 因为有一些路径的行进次数较多 所以我想让路径的宽度 大小 与其计数成正比 我想象它是这样的geom line
  • 移动浏览器检测和格式化的最佳实践

    我为一位希望可以通过移动设备轻松访问的客户开设了一个小型网上商店 如何检测用户是否通过移动设备浏览我的网站 当我这样做之后 我应该 检查用户是否有移动设备 然后将其转发到另一个站点 我认为优点是 我可以优化两个网站的屏幕尺寸布局 我可以在两
  • Facebook API 密钥?与应用程序 ID 相同吗?

    我已经通过 facebook 为我的网站设置了一个应用程序 与我在网络上看到的显示 API 密钥的其他屏幕截图不同 我没有 我显示的只是 应用程序 ID 后面跟着 应用程序秘密 所以想知道应用程序 ID 是否与 API 密钥相同 因为我正在
  • 在 Swift 中制作简单的淡入淡出动画?

    我正在尝试用 Swift 制作一个简单的动画 这是淡入 我尝试过 self myFirstLabel alpha 0 self myFirstButton alpha 0 self mySecondButton alpha 0 然后 我有
  • 将 Post 或 PostAndAsyncReply 与 F# 的 MailboxProcessor 一起使用吗?

    我见过不同的片段展示了Put返回的消息unit与 F 的MailboxProcessor 在某些情况下 仅Post方法被使用而其他人使用PostAndAsyncReply 一旦消息被处理 回复通道立即回复 在进行一些测试时 我发现等待回复时