Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions src/Samples/PingPong/Pinger/Worker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,25 @@ namespace Pinger;
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
private readonly IMessageBus _bus;
private readonly IServiceProvider _serviceProvider;

public Worker(ILogger<Worker> logger, IMessageBus bus)
public Worker(ILogger<Worker> logger, IServiceProvider serviceProvider)
{
_logger = logger;
_bus = bus;
_serviceProvider = serviceProvider;
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
var pingNumber = 1;

await using var scope= _serviceProvider.CreateAsyncScope();
var bus = scope.ServiceProvider.GetRequiredService<IMessageBus>();
while (!stoppingToken.IsCancellationRequested)
{
await Task.Delay(1000, stoppingToken);
_logger.LogInformation("Sending Ping #{Number}", pingNumber);
await _bus.PublishAsync(new Ping { Number = pingNumber });
await bus.PublishAsync(new Ping { Number = pingNumber });
pingNumber++;
}
}
Expand Down
2 changes: 2 additions & 0 deletions src/Samples/PingPong/Ponger/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
return await Host.CreateDefaultBuilder(args)
.UseWolverine(opts =>
{
opts.ApplicationAssembly = typeof(Program).Assembly;

// Using Wolverine's built in TCP transport
opts.ListenAtPort(5581);
})
Expand Down
41 changes: 20 additions & 21 deletions src/Samples/PingPongWithRabbitMq/Pinger/PingerService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,37 @@ public class PingerService : IHostedService
{
// IMessagePublisher is an interface you can use
// strictly to publish messages through Wolverine
private readonly IMessageBus _bus;
private readonly IServiceProvider _serviceProvider;

public PingerService(IMessageBus bus)
public PingerService(IServiceProvider serviceProvider)
{
_bus = bus;
_serviceProvider = serviceProvider;
}

public Task StartAsync(CancellationToken cancellationToken)
public async Task StartAsync(CancellationToken cancellationToken)
{
return Task.Run(async () =>
{
var count = 0;
var count = 0;

while (!cancellationToken.IsCancellationRequested)
await using var scope= _serviceProvider.CreateAsyncScope();
var bus = scope.ServiceProvider.GetRequiredService<IMessageBus>();
while (!cancellationToken.IsCancellationRequested)
{
try
{
try
var message = new PingMessage
{
var message = new PingMessage
{
Number = ++count
};
Number = ++count
};

await _bus.SendAsync(message);
await bus.SendAsync(message);

await Task.Delay(1.Seconds(), cancellationToken);
}
catch (TaskCanceledException)
{
return;
}
await Task.Delay(1.Seconds(), cancellationToken);
}
catch (TaskCanceledException)
{
return;
}
}, cancellationToken);
}
}

public Task StopAsync(CancellationToken cancellationToken)
Expand Down
5 changes: 3 additions & 2 deletions src/Samples/PingPongWithRabbitMq/Pinger/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@
return await Host.CreateDefaultBuilder(args)
.UseWolverine(opts =>
{
opts.ApplicationAssembly = typeof(Program).Assembly;

// Listen for messages coming into the pongs queue
opts
.ListenToRabbitQueue("pongs");
opts.ListenToRabbitQueue("pongs");

// Publish messages to the pings queue
opts.PublishMessage<PingMessage>().ToRabbitExchange("pings");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,10 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:64643",
"sslPort": 44397
}
},
"profiles": {
"Pinger": {
"PingerWithRabbitMQ": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:7295;http://localhost:5295",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
"DOTNET_ENVIRONMENT": "Development"
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"profiles": {
"Ponger": {
"PongerWithRabbitMQ": {
"commandName": "Project",
"dotnetRunMessages": true,
"environmentVariables": {
Expand Down
Loading