Я использую RabbitMQ с C #, MassTransit, Autofac.
У меня запланированное (5 секунд) задание для использования очередей.
Эта работа работает около 2 часов, а затем внезапно останавливается. Когда я искал журналы, я нашел это:
Scope ---> Исключительная ситуация при создании шины (см. Внутренний
исключение для детей.) ---> MassTransit.ConfigurationException: An
исключение произошло при создании шины --->
System.OutOfMemoryException: было сгенерировано исключение типа «System.OutOfMemoryException».
Это мой блок кода для настройки Autofac в MassTransit:
builder.Register(context =>
{
var busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
{
cfg.Host(new Uri(Globals.QueueUrl), h =>
{
h.Username(Globals.QueueUserName);
h.Password(Globals.QueuePassword);
});
cfg.ReceiveEndpoint("create_sales_queue",
ec =>
{
ec.Consumer<CreateSalesConsumer>(context);
ec.UseRetry(p => p.Incremental(10, TimeSpan.FromMilliseconds(200), TimeSpan.FromMilliseconds(200)));
});
});
return busControl;
})
.InstancePerDependency()
.As<IBusControl>()
.Named<IBusControl>(GenericIntegrationTask.CreateSalesTask.ToString());
Это код запланированного задания:
try
{
var bus = container.ResolveNamed<IBusControl>(GenericIntegrationTask.CreateSalesTask.ToString());
bus.Start();
Thread.Sleep(2000);
bus.Stop();
}
catch (Exception e)
{
Console.WriteLine(e);
}
Заранее спасибо.