我使用的是带有RabbitMq的MassTransit 3.0。我想知道我的队列是否为空,因为如果是,我需要从db中删除临时表。我不知道如何查看队列是否为空。
var inventoryBus = new InventoryBus(new RabbitServiceConfig());
inventoryBus.Instance.Start();
inventoryBus.Instance.ConnectConsumer<InventoryConsumer>();
==========消费者===============
public class InventoryConsumer
我有一个MassTransit示例程序,它发布1条正文为当前时间戳的消息。然而,奇怪的是,消费者被调用的次数总是恰好5次。
程序如下:
public class MassTransitTest
{
static void Main(string[] args)
{
var bus = ServiceBusFactory.New(x =>
{
x.UseRabbitMq();
x.ReceiveFrom("rabbitmq://localhost/test");
如何使用MassTransit和MSMQ正确地设置具有多个订阅者(它们都接收已发布的消息)的发布者-订阅服务器体系结构。
请注意,我不想使用MSMQ多播功能,因为它有点不稳定,并且依赖于PGM (PGM本身也有一些限制)。
我读过、和,但仍然不知道该如何设置
订阅服务,
出版商,
还有几个订户。
特别是,在许多示例中使用的sbc.UseSubscriptionService("uri");现在已经过时(我正在使用MassTransit 2.7)。这个过时的评论说The extension method on UseMsmq should be used in
我有两个系统,一个用于发布消息,另一个用于使用它们。两者都使用Masstransit (与RabbitMQ一起使用),并使用ASP.Net web 2和OWIN (以及Autofac作为IoC容器)实现。如果我的使用者没有依赖项,,一切都很好,但是当我向使用者注入依赖关系时,消费方法永远不会被执行(初始化期间没有抛出错误)。
这是相关的Publisher代码:
//Startup.cs
public class Startup
{
public void Configuration(IAppBuilder app)
{
HttpConfiguration con
我有一个asp.net流程,它也使用来自服务总线(MassTransit)的消息。对于For请求,我的数据库会话将以PerWebRequest的方式进行解析。
但是,当进程使用来自MassTransit的消息时,我需要数据库会话有另一种生活方式,因为没有可用的HttpContext。
我做了这样的事情:
public class PerRequestLifeStyleManager : ILifestyleManager
{
readonly PerWebRequestLifestyleManager perWebRequestLifestyleManager;
rea
我尝试使用MassTransit向Azure中名为events的主题发布消息。我在配置MassTransit以使用预定义的主题events时遇到了问题,相反,它为消息类型创建了一个由名称空间/类名命名的新主题。所以我想知道如何指定使用哪个主题,而不是创建一个新的主题。
下面是我测试过的代码:
using System;
using System.Threading.Tasks;
using MassTransit;
using MassTransit.AzureServiceBusTransport;
using Microsoft.ServiceBus;
namespace Publish
下面的代码只是使应用程序崩溃,没有捕获错误,并且在调用发布时应用程序只是关闭。我真正想要做的是执行单元测试,这段代码只是为了提供一个干净的示例而抽象的。当我以unittest的形式运行相应的代码时,我会收到一条错误消息,表示线程正在中止。代码使用的是MassTransit nuget包的3.5.6版本。
有人能看出我做错了什么吗?
using System;
using System.Threading.Tasks;
using MassTransit;
namespace CustomerService.Console
{
class Program
{
p
有一个关于地铁ESB的新手问题
我第一次尝试MassTransit,并试图了解如何创建队列和如何使用消息。
我有一个web应用程序和一个控制台应用程序试图分别进行发布/消费。
这是我的初始化代码。
var bus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var host = sbc.Host(new Uri(hostName), h =>
{
h.Username(userName);
当从程序集(使用容器/ MassTransit.StructureMap集成nuget包)加载使用者时,消息会得到部分处理:总线处理存储在队列中的消息,之后不会响应,不过可以看到添加到队列中的消息。然后,如果您重新启动应用程序,它将处理队列中等待消息的那些消息,并且不会做更多的事情。
下面是设置:
public class Application {
public static void Main() {
var container = new Container();
container.Configure(c => c.Scan(scan =
我有一个.net核心控制台应用程序,它目前有一个IHostedService,我需要在应用程序启动时生成和管理这个服务的多个实例。
我希望实施某种协调,负责解雇,监测和重新启动工人。我知道这个概念,但我不确定如何执行。
通过实例化的ICallProgService,工作人员自己将打开一个到本体数据库的会话并对其进行维护。然后,工作人员将通过RabbitMq使用带有请求/响应模式的masstransit库侦听消息队列。
这里的微妙之处在于,我相信(不是100%确定)它们都需要连接到同一个IBusControl上,才能使用masstransit。
工人的代码在这里:
public class Me