草庐IT

rabbitmq-delayed-message-exchange

全部标签

c# - acking RabbitMQ 消息是否有超时?

我想设置一个超时时间,在该超时时间之后,出队的消息将被自动取消确认。当我将一条消息从队列中取出时,我会一直等到它通过套接字传输并且另一方确认接收到它。我是否需要保留一个计时器列表,或者RMQ可以自动处理吗?privatevoidRun(){_rmqConnection=_queueConnectionFactory.CreateFactory().CreateConnection();_rmqReadchannel=_rmqConnection.CreateModel();_rmqReadchannel.QueueDeclare(QueueIdOutgoing(),true,false

c# - react 性扩展 : Process events in batches + add delay between every batch

我有一个应用程序,它有时几乎同时引发1000个事件。我想做的是将事件批处理为50个项目的block,并开始每10秒处理一次。在开始新的批处理之前无需等待批处理完成。例如:10:00:00:10000neweventsreceived10:00:00:StartProcessing(events.Take(50))10:00:10:StartProcessing(events.Skip(50).Take(50))10:00:15:StartProcessing(events.Skip(100).Take(50))有什么想法可以实现吗?我想ReactiveExtensions是可行的方法,

c# - Task.Delay 与 DispatcherTimer?

我正在考虑将Task.Delay()用于不间断计时器,因为它更简单且可读性更强。由于我是.NET的新手,我看不出这两种代码之间有什么显着差异。你能告诉我它们之间的区别(如果有的话)吗?//CreatevariableatsomeplaceDispatcherTimertimer=newDispatcherTimer();timer.Interval=TimeSpan.FromSeconds(5);timer.Tick+=timer_Elapsed;timer.Start();//Functionotherplacevoidtimer_Elapsed(objectsender,Event

c# - RabbitMQ 持久队列不工作(RPC-Server,RPC-Client)

我想知道为什么我的RabbitMQRPC-Client在重启后总是处理死消息。_channel.QueueDeclare(queue,false,false,false,null);应该禁用缓冲区。如果我在RPC客户端中重载QueueDeclare,我将无法连接到服务器。这里有什么问题吗?知道如何解决这个问题吗?RPC-服务器newThread(()=>{varfactory=newConnectionFactory{HostName=_hostname};if(_port>0)factory.Port=_port;_connection=factory.CreateConnectio

c# - 使用 MassTransit、RabbitMQ 和 SignalR 的分布式架构

我正在MassTransit的帮助下开发分布式应用程序和rabbitmq我必须提供在网页上生成报告的能力,无需通过单击按钮重新加载页面,我还应该调用Windows服务来准备数据(该服务处理每个请求30秒-1分钟)。我基于此示例的第一次尝试:https://github.com/MassTransit/Sample-RequestResponse[HttpPost]publicasyncTaskGenerateReport(stringsomeJsonData){varserviceAddress=newUri(ConfigurationManager.AppSettings["Base

C# RabbitMQ 等待指定超时的一条消息?

RabbitMQWaitforamessagewithatimeout中的解决方案和WaitforasingleRabbitMQmessagewithatimeout似乎不起作用,因为官方C#库中没有下一个传递方法,并且QueueingBasicConsumer被删除,所以它只是到处抛出NotSupportedException。如何在指定的超时时间内等待来自队列的单个消息?附言可以通过Basic.Get()来完成,是的,但是好吧,在指定的时间间隔内拉取消息(过多的流量,过多的CPU)是一个糟糕的解决方案。更新EventingBasicConsumer通过实现不支持立即取消。即使您在某

c# - Rhino 模拟 - AssertWasCalled : How to improve unclear diagnostic message when incorrect arguments

恕我直言,RhinoMocks在使用AssertWasCalled时会产生一条不清楚的诊断消息,以验证是否已使用特定参数调用方法。例子:interfaceISomeInterface{voidWrite(strings);}[TestFixture]publicclassSomeTests{[Test]publicvoidWriteShouldBeCalledWithCorrectArguments(){//Arrangevarmock=MockRepository.GenerateMock();varsut=newSomeClass(mock);//Actsut.DoSomethin

c# - Task.Delay().Wait() 是怎么回事?

我很困惑,为什么Task.Delay().Wait()需要4倍的时间,然后是Thread.Sleep()?例如task-00是否在仅线程9上运行并花费了2193毫秒?我知道,同步等待在任务中很糟糕,因为整个线程都被阻塞了。仅供测试。控制台应用程序中的简单测试:boolflag=true;varsw=Stopwatch.StartNew();for(inti=0;i{Console.WriteLine($"task-{cntr.ToString("00")}\tThrID:{Thread.CurrentThread.ManagedThreadId.ToString("00")},\tWa

c# - 为什么 .NET SmtpClient 发送的电子邮件缺少 Message-Id?

这是我在App.Config中的SMTP设置:这就是我发送电子邮件的方式:message.SubjectEncoding=System.Text.Encoding.UTF8;message.BodyEncoding=System.Text.Encoding.UTF8;smtpClient.Send(message);这是有效的!但唯一的问题是,我的电子邮件将进入垃圾邮件文件夹,这是因为它们的标题中缺少Message-Id。我在Thunderbird中使用相同的帐户,当我使用Thunderbird发送电子邮件时,Message-Id会添加到我的电子邮件中,但从我的应用程序发送的电子邮件不

c# - 如何为 RabbitMQ 管理 HTTP API 生成 password_hash

心爱的人RabbitMQManagementPlugin有一个HTTPAPI通过纯HTTP请求管理RabbitMQ。我们需要以编程方式创建用户,而HTTPAPI是我们选择的方式。文档很少,但API非常简单直观。考虑到安全性,我们不想以纯文本形式传递用户密码,API提供了一个字段来发送密码哈希值。从那里引用:[GET|PUT|DELETE]/api/users/nameAnindividualuser.ToPUTauser,youwillneedabodylookingsomethinglikethis:{"password":"secret","tags":"administrator