标签: message-queue

Symfony:通过电子邮件发送失败的消息

我有一个简单的消息配置:

framework:
    messenger:
        failure_transport: failed
        transports:
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                retry_strategy:
                    max_retries: 2
                    delay: 10000
            failed: 'doctrine://default?queue_name=failed'

        routing:
            someInterface: async
Run Code Online (Sandbox Code Playgroud)

我想知道路由到失败传输的每条消息,当消息重定向时,系统应该向我发送电子邮件通知。我唯一的想法是定期检查messenger_messages包含存储在失败传输中的消息的表,但我认为这不是 symfony 方式的解决方案。您知道针对此功能的更聪明的解决方案吗?

我正在使用 symfony/messenger 版本 5.*

php message-queue symfony symfony5

6
推荐指数
1
解决办法
2489
查看次数

Nats Jetstream 一次性交付

我想使用 Nats Jetstream 实现一次精确交付系统。文档称 Jetstream 有此选项,但没有有关其工作原理以及客户如何实现此选项的示例或详细信息。我知道在发布者端我们可以在创建Stream时设置MsgId并指定复制窗口,但是消费者端呢?

message-queue go nats.io

6
推荐指数
1
解决办法
4101
查看次数

通过可靠的异步消息传递实现服务版本化的权衡取舍?

HTTP服务的客户端可以通过请求或发布具有特定内容类型的数据来指定他们理解的版本(和格式).HTTP协议定义用于报告不理解内容类型的错误代码.

消息传递系统(例如JMS,MQ Series等)没有描述消息协议版本和内容格式的标准方法.

您如何为通过可靠的异步消息传递访问的服务实现版本控制?

一些可能性:

  • 发件人将版本指示为邮件属性
  • 队列或主题名称包括在该目标接受的消息的协议版本
  • 版本在消息的有效负载中

我相信还有其他方法.你是怎么做到的?你找到了什么优点和缺点?

versioning messaging asynchronous message-queue

5
推荐指数
1
解决办法
313
查看次数

什么是单台机器上最快的Perl IPC /消息队列?

我正在研究(主要)Perl项目,并希望使用消息队列来隔离彼此之间的进程.我有这样的工作流程:

输入 - >接收器 - >处理器 - >输出

我需要处理数百笔交易/秒,所以加快我最大的动力.这种类型的设置最快的消息队列系统是什么?

我的所有进程都在同一台机器上运行,因此如果它意味着更好的性能,我可以使用UNIX套接字或临时文件.

到目前为止,我最喜欢的是IPC :: DirQueue和beanstalkd.任何人都有这方面的经验,可以得出哪个更快的结论?

还有什么可以在一台机器上实现超快工作队列?

perl ipc message-queue

5
推荐指数
1
解决办法
2391
查看次数

使用数据库或MSMQ排队?

我正在研究的应用程序的一部分是一个swf,它显示了一个包含80个问题的测试.每个问题都通过WebORB和ASP.NET保存在SQL Server中.

如果候选人完成测试,则需要验证会话.问题是有时350名候选人在同一时间完成测试,并且Web服务器和SQL Server上的CPU爆炸(同时进行350次验证).

现在,我该如何在这里实施排队?在数据库中,有一个表,其中包含每个会话的记录.一栏保持状态.1完成,2验证.

我可以通过两种方式实现排队(正如我所看到的,也许你有其他命题):

  • 检查表中状态为1的记录的进程.如果找到,则验证会话.因此,会话一个接一个地验证.
  • 如果候选者完成其会话,则将消息发送到MSMQ队列.另一个进程侦听队列并逐个验证会话.

现在:

  • 什么是最好的方法?
  • 您从哪里开始验证会话的过程?在你的global.asax(application_start)中?作为Windows服务?作为在application_start中启动的网站的根目录下的exe?

对我来说,使用表格并查找状态为1的记录似乎是最简单的方法.

sql-server asp.net queue msmq message-queue

5
推荐指数
1
解决办法
1630
查看次数

如何使用MessageQueue检测连接中断

我用C#编写的应用程序利用MessageQueue.NET 中的类与另一个远程应用程序进行消息通信,并且在所有情况下,MessageQueue应始终与远程messageQueue"连接"(存在心跳).如果它没有"连接",那么它表示出现了问题,我的应用程序需要执行一些操作,例如更新事件日志.

类中是否有一个方法MessageQueue可用于检测连接中的这种中断?

c# connection msmq message-queue mq

5
推荐指数
1
解决办法
670
查看次数

任何人都知道在使用最终一致的数据更新时保持用户界面一致的良好模式

场景是一个包含联系人列表的网格.用户点击网格中的"发送电子邮件",发送电子邮件.我们在队列中删除一条消息来更新一些聚合(它们也显示在列表中).

问题是在发送电子邮件之后,聚合不能保证更新.

我们可以使用javascript更新计数,但如果他们刷新页面并且聚合尚未完成呢?

c# user-interface message-queue eventual-consistency

5
推荐指数
1
解决办法
151
查看次数

delayed_job就像python的队列一样

我需要一个队列来将数据从ruby发送到python

该系统是一个带有Ruby前端和python后端的应用程序,我宁愿不添加另一个复杂的部分.如果它只是红宝石,我只会选择delayed_job,但ruby-> python更难.

所以

我正在为python 寻找一个简单的基于数据库的队列(类似于delayed_job),我计划破解一个红宝石"生产者"部分.

或者只是让我惊讶于一个我还没有想到的解决方案.

ruby python queue message-queue

5
推荐指数
1
解决办法
1909
查看次数

奇怪的posix消息队列链接问题 - 有时它没有正确链接

当我构建以下代码时,它构建良好.如果我更改代码注释掉"while",使用相同的命令行,它不会构建(见下文)

#include <stdio.h>
#include <mqueue.h>

int main(int argc, char *argv[]) {
   while (1) { }

   mq_open("/YouSUCK", O_RDWR | O_CREAT | O_EXCL, S_IRWXU | S_IRWXG, NULL);

   return 0;
}

dada@thud:~/RaspberryPI$ gcc -g -Wall -lrt -o mqtest mqtest.c

dada@thud:~/RaspberryPI$ 

#include <stdio.h>
#include <mqueue.h>

int main(int argc, char *argv[]) {
//   while (1) { }

   mq_open("/YouSUCK", O_RDWR | O_CREAT | O_EXCL, S_IRWXU | S_IRWXG, NULL);

   return 0;
}

dada@thud:~/RaspberryPI$ gcc -g -Wall -lrt -o mqtest mqtest.c

/tmp/cccw376u.o: In function `main':

/home/dada/RaspberryPI/mqtest.c:7: undefined reference …
Run Code Online (Sandbox Code Playgroud)

c linux gcc posix message-queue

5
推荐指数
1
解决办法
5916
查看次数

消息队列,EventBus和发布/订阅之间的区别?

我对消息队列(例如ActiveMQ,RabbitMQ,ZeroMQ)和EventBus(例如Guava Event Bus,Akka EventBus)的概念感到困惑

我认为MQ和eventBus都使用发布/订阅模式。与Guava相比,MQ似乎更强大,更沉重。

但是真正的区别是什么?EventBus与MQ一样吗?

java jms message-queue

5
推荐指数
1
解决办法
3325
查看次数