|
|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
using System;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Medallion.Threading;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
@ -37,17 +38,17 @@ namespace Volo.Abp.EventBus.Boxes
|
|
|
|
|
Logger = NullLogger<OutboxSender>.Instance;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual Task StartAsync(OutboxConfig outboxConfig)
|
|
|
|
|
public virtual Task StartAsync(OutboxConfig outboxConfig, CancellationToken cancellationToken = default)
|
|
|
|
|
{
|
|
|
|
|
OutboxConfig = outboxConfig;
|
|
|
|
|
Outbox = (IEventOutbox)ServiceProvider.GetRequiredService(outboxConfig.ImplementationType);
|
|
|
|
|
Timer.Start();
|
|
|
|
|
Timer.Start(cancellationToken);
|
|
|
|
|
return Task.CompletedTask;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual Task StopAsync()
|
|
|
|
|
public virtual Task StopAsync(CancellationToken cancellationToken = default)
|
|
|
|
|
{
|
|
|
|
|
Timer.Stop();
|
|
|
|
|
Timer.Stop(cancellationToken);
|
|
|
|
|
return Task.CompletedTask;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -85,12 +86,11 @@ namespace Volo.Abp.EventBus.Boxes
|
|
|
|
|
Logger.LogInformation($"Sent the event to the message broker with id = {waitingEvent.Id:N}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await Task.Delay(30000);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Logger.LogDebug("Could not obtain the distributed lock: " + DistributedLockName);
|
|
|
|
|
await Task.Delay(7000); //TODO: Can we pass a cancellation token to cancel on shutdown? (Config?)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|