[FA-9] Need to add persistence layer
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using FictionArchive.Service.Shared.Services.EventBus;
|
||||
using Newtonsoft.Json;
|
||||
using Quartz;
|
||||
|
||||
namespace FictionArchive.Service.SchedulerService.Models.JobTemplates;
|
||||
|
||||
public class EventJobTemplate : IJob
|
||||
{
|
||||
private readonly IEventBus _eventBus;
|
||||
private readonly ILogger<EventJobTemplate> _logger;
|
||||
|
||||
public const string EventTypeParameter = "RoutingKey";
|
||||
public const string EventDataParameter = "MessageData";
|
||||
|
||||
public EventJobTemplate(IEventBus eventBus, ILogger<EventJobTemplate> logger)
|
||||
{
|
||||
_eventBus = eventBus;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public async Task Execute(IJobExecutionContext context)
|
||||
{
|
||||
try
|
||||
{
|
||||
var eventData = context.MergedJobDataMap.GetString(EventDataParameter);
|
||||
var eventType = context.MergedJobDataMap.GetString(EventTypeParameter);
|
||||
var eventObject = JsonConvert.DeserializeObject(eventData);
|
||||
await _eventBus.Publish(eventObject, eventType);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "An error occurred while running an event job.");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user