-
-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathProgram.cs
More file actions
33 lines (27 loc) · 1.08 KB
/
Program.cs
File metadata and controls
33 lines (27 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using Foundatio.Jobs;
using Foundatio.Messaging;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace Foundatio.SampleJob;
public class Program
{
private static ILogger _logger = null!;
public static int Main()
{
var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
_logger = loggerFactory.CreateLogger("MessageBus");
var serviceProvider = SampleServiceProvider.Create(loggerFactory);
var jobOptions = JobOptions.GetDefaults<PingQueueJob>(_ => serviceProvider.GetRequiredService<PingQueueJob>());
var messageBus = serviceProvider.GetRequiredService<IMessageBus>();
messageBus.SubscribeAsync<EchoMessage>(m => HandleEchoMessage(m)).GetAwaiter().GetResult();
return new JobRunner(jobOptions, serviceProvider).RunInConsoleAsync().GetAwaiter().GetResult();
}
private static void HandleEchoMessage(EchoMessage m)
{
_logger.LogInformation($"Got message: {m.Message}");
}
}
public record EchoMessage
{
public required string Message { get; set; }
}