问题标签 [message-handlers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
397 浏览

erlang - 如何理解 Erlang 的接收语句?

我是 Erlang 的新手,所以请放轻松。

我对如何在 erlang 中执行接收语句感到困惑,例如:

如果收到 MessageA 并执行了 handlerA,一段时间后,在进程的收件箱中收到 MessageB,是否执行 handlerB?

我猜不是,因为我看到很多代码会递归地再次执行接收语句:

但是这里有个问题,如果 messageA 的处理程序包含另一个像这样的接收语句:

这样的话,是不是说如果我进入MessageA的hander,就永远不能处理MessageB了?

我该如何解决这个问题?通过将 MessageB 的处理程序放入 loop2?这看起来不太优雅,尤其是当有多个级别的接收语句时。

有一个更好的方法吗?

0 投票
1 回答
101 浏览

maven - 在自定义消息处理程序教程中尝试演示时出现 JIRA 错误

我正在做创建自定义消息处理程序的教程。教程链接

我遵循完全相同的操作,然后当我尝试运行“atlas-run”命令时,总是出现一条构建失败消息,并带有此错误代码

无法在项目 mail-handler-demo 上执行目标:无法解析项目 com.example.plugins.tutorial.jira:mail-handler-demo:atlassian-plugin:1.0.0-SNAPSHOT 的依赖项:找不到 com.atlassian https://maven.atlassian.com/repository/public中的 .jira:jira-mail-plugin:jar:7.0.0-1 被缓存在本地仓库中,直到 atlassian-public 的更新间隔才会重新尝试解析已过期或强制更新 -> [帮助 1]

是否正在更改或更新“com.atlassian.jira:jira-mail-plugin:jar:7.0.0-1”文件?还是有其他原因导致此错误?在此先感谢您的帮助。

0 投票
2 回答
212 浏览

multithreading - NServiceBus 处理程序是否应该总是快速完成?

[为清晰而编辑]

我不确定我是否理解正确。

根据这些指导性的帖子,在 Saga 中,一切都应该简明扼要:

  • 乔纳森奥利弗的总结:blog.jonathanoliver.com/...
  • Udi Dahan 的原文:skillsmatter.com/skillscasts/...
  • 和一些早期的帖子
  • lostechies.com/jimmybogard/2013/03/26/scaling-nservicebus-sagas
  • docs.particular.net/nservicebus/architecture/principles

也就是说你的saga应该没有业务逻辑,里面也没有if-else指令。它应该只是一个协调器,调用它应该是“面向成功的”——也就是说:在调用 Saga 之前应该尽可能多地进行验证。

但是单独的处理程序(你称它们为“独立处理程序”吗?),那些不在 saga 中的处理程序呢?以下哪项对他们来说是正确的:

一个。saga 之外的 NServiceBus 消息处理程序是否应该总是快速完成,如果有一个耗时的操作将其传递给线程并完成?

湾。还是更好地“占用”处理程序,这样 NServiceBus “知道”该消息正在被大量使用,并可以相应地采取行动 - 即通过自动负载平衡,创建处理过程的另一个实例不同的工艺甚至不同的机器?

正确的方法是什么?

您能否提供一些示例代码以及您的答案,调用一个Foo.DoTimeConsumingBar()方法。

谢谢你。

0 投票
1 回答
1023 浏览

c# - NServicebus Generic MessageHandler 未调用

我目前正在开发一个示例项目,我在后端使用 NServiceBus 来发布事件。然后后端应该通过一组处理程序处理自己的事件。当我为每个事件实现一个特定的处理程序时,这很好用,如下所示:

然而,由于这些处理程序只是将事件分派给另一个处理器,我想清理一下并只实现一个通用消息处理程序:

不幸的是,只有在项目中存在另一个特定处理程序的消息类型才会调用通用处理程序。换句话说,当我将 MyEventHandler 留在源中时,GenericHandler 正确接收 MyEvent 事件,但当我删除此(现在已过时)处理程序时停止接收此消息。我的目标实际上是从项目中删除所有特定的处理程序,并且只使用单个 GenericHandler。我错过了配置的基本步骤吗?

NServiceBus 配置如下所示:

此外:

  • 上面提到的 Api-assembly 包含了所有需要发布和处理的事件。
  • 我用NServiceBus的ICommand和标记接口标记了所有消息。IEvent
  • 我将 NServiceBus V5 (Core) 与 NServiceBus.Host V6 结合使用。
  • 我的 EndpointConfig 中有以下自定义总线配置:

    /li>
0 投票
1 回答
811 浏览

java - Java WebSocket:多文本/数据消息处理程序

大家好。在我的 WebSocket 应用程序中,WS 服务器需要处理三种消息:DataPkg、SigPkg 和 WS_SigPkg。DataPkg 是用于用户数据的二进制文件,带有控制器标头;SigPkg 是String 用于WS 客户端之间的用户数据控制,WS_SigPkg 也是String 用于诸如注册到WS 服务器以及在不同WS 会话之间切换DataPkg 和SigPkg。

所以我放了六个编码器/解码器:

然后我得到以下错误:

似乎 GlashFish Server 4.1.1 无法为字符串消息添加两个 MessageHandler,尽管在上层它们是不同的,解码器可以找到。

这里是否有任何误解或有一个简单的解决方法,或者我必须重构只使用一个 MessageHandler 用于字符串和一个用于二进制?谢谢。

0 投票
1 回答
1120 浏览

c# - C# Web Api,在响应返回给客户端后记录请求

我最近为我的应用程序创建了一个日志记录解决方案,我的 Web 服务器通过 HTTP 将所有请求/响应数据发送到日志记录服务器。我已经使用委托处理程序完成了这项工作

http://www.asp.net/web-api/overview/advanced/http-message-handlers

这工作得很好,但我很好奇是否有办法以一种不需要我在将消息发送回客户端之前记录消息的方式来做到这一点。记录消息不会为最终用户增加任何价值,因此我希望他们不必等待记录逻辑完成,然后再取回数据。

我想我正在寻找的是某种在消息已经返回给客户端之后被调用的钩子,但在线程消失之前,我仍然可以访问请求和响应。

我要求太多了吗?

谢谢!

0 投票
1 回答
54 浏览

scip - SCIP 3.2.0 不会取代消息处理程序

我希望 SCIP 可调用将所有消息打印到 stderr(将其用作 flatzinc 求解器)。我试过了

没有效果...

0 投票
2 回答
1150 浏览

log4net - 使用 OWIN 中间件或委托 MessgaeHandler 来记录 api 请求/响应?

在我旧的非 OWIN API 中,我使用 MessageHanlder 来记录所有 HttpRequests 和 HttpResponses。这是消息处理程序:

但是,在我较新的项目中,我可以编写自定义 OWIN 中间件来使用 OwinContext 执行类似的操作,如下所示:

我正在使用 log4net 将信息写入 SQL2012 数据库。两种方式都实现了我的目标。但是,我正在寻找使用一种方法而不是另一种方法的理由。我应该使用自定义 OWIN 中间件还是 MessageHandler,为什么?提前致谢。

0 投票
1 回答
72 浏览

authentication - 什么会导致处理程序被忽略?

我们搬到了一个新的服务器,我的 Thinktecture IdentityModel 东西坏了。

这是一个超级简化的重现样本。这项工作从 Visual Studio 本地运行,但部署到处理程序显然未处理的服务器。

处理程序未执行。我已经设置了远程调试,这表明

  • Thinktecture 程序集已加载
  • Application_Start 创建并添加一个基本的身份验证处理程序

这个脚本是测试客户端

api/token它产生一个用基本身份验证标头装饰的请求,如下所示:

此服务器使用此 401 响应

Visual Studio 2013 在处理程序中显示有效的断点,但它们没有被命中。这就是为什么我相信处理程序没有被调用。

响应指定了一个领域,但修改处理程序注册以指定realm = "assa.com.au"不影响结果。

0 投票
2 回答
222 浏览

iis-7 - Web API 2 响应并不总是发送?

我已经在这样的消息处理程序中实现了所有请求/响应数据包的日志记录:

似乎每天没有记录大约 10-20 个 api 响应(数千个)。我们有正在调用这些 API 的移动设备,并认为它们可能会发出请求,然后失去网络连接,在这种情况下,永远不会发送或记录响应。

但是,用 postman 测试,如果我们执行一个日志运行请求,然后在它中间点击取消按钮,我们确实看到最终将响应写入日志。它看起来是在发出后续请求时写入的。

如果 Web API 2.0 收到请求,它是否总是发出响应?客户中止是否重要?如果客户端失去与网络的连接,这有关系吗?

我们使用 log4net 和全局异常记录器来捕获任何错误。但是,查看我们“丢失”响应时的所有日志,没有记录异常。这是全局记录器:

这是处理程序和记录器在启动时注册的方式。

我也很难对此进行测试,非常感谢任何建议。