public async Task HandleAsync(ReplayPublicEventsRequested signal) { ReplayPublicEvents_Job job = jobFactory.CreateJob(signal); JobExecutionStatus result = await jobRunner.ExecuteAsync(job).ConfigureAwait(false); logger.Debug(() => "Rebuild projection version {@cronus_projection_rebuild}", result); }
public void Handle(RebuildIndexInternal sagaTimeout) { var job = jobFactory.CreateJob(sagaTimeout.EventStoreIndexRequest.Timebox); var result = jobRunner.ExecuteAsync(job).GetAwaiter().GetResult(); if (result == JobExecutionStatus.Running) { RequestTimeout(new RebuildIndexInternal(sagaTimeout.EventStoreIndexRequest, DateTime.UtcNow.AddSeconds(30))); } else if (result == JobExecutionStatus.Failed) { // log error RequestTimeout(new RebuildIndexInternal(sagaTimeout.EventStoreIndexRequest, DateTime.UtcNow.AddSeconds(30))); } else if (result == JobExecutionStatus.Completed) { var finalize = new FinalizeEventStoreIndexRequest(sagaTimeout.EventStoreIndexRequest.Id); commandPublisher.Publish(finalize); } }
public async Task HandleAsync(CreateNewProjectionVersion sagaTimeout) { RebuildProjection_Job job = jobFactory.CreateJob(sagaTimeout.ProjectionVersionRequest.Version, sagaTimeout.ProjectionVersionRequest.Timebox); JobExecutionStatus result = await jobRunner.ExecuteAsync(job).ConfigureAwait(false); logger.Debug(() => "Replay projection version {@cronus_projection_rebuild}", result); if (result == JobExecutionStatus.Running) { RequestTimeout(new CreateNewProjectionVersion(sagaTimeout.ProjectionVersionRequest, DateTime.UtcNow.AddSeconds(30))); } else if (result == JobExecutionStatus.Failed) { var cancel = new CancelProjectionVersionRequest(sagaTimeout.ProjectionVersionRequest.Id, sagaTimeout.ProjectionVersionRequest.Version, "Failed"); commandPublisher.Publish(cancel); } else if (result == JobExecutionStatus.Completed) { var finalize = new FinalizeProjectionVersionRequest(sagaTimeout.ProjectionVersionRequest.Id, sagaTimeout.ProjectionVersionRequest.Version); commandPublisher.Publish(finalize); } }
public async Task HandleAsync(RebuildIndexInternal sagaTimeout) { ICronusJob <object> job = null; // we need to redesign the job factories var theId = sagaTimeout.EventStoreIndexRequest.Id.Id; if (theId.Equals(typeof(EventToAggregateRootId).GetContractId(), StringComparison.OrdinalIgnoreCase)) { job = jobFactory.CreateJob(sagaTimeout.EventStoreIndexRequest.Timebox); } else if (theId.Equals(typeof(MessageCounterIndex).GetContractId(), StringComparison.OrdinalIgnoreCase)) { job = messageCounterJobFactory.CreateJob(sagaTimeout.EventStoreIndexRequest.Timebox); } else { return; } JobExecutionStatus result = await jobRunner.ExecuteAsync(job).ConfigureAwait(false); if (result == JobExecutionStatus.Running) { RequestTimeout(new RebuildIndexInternal(sagaTimeout.EventStoreIndexRequest, DateTime.UtcNow.AddSeconds(30))); } else if (result == JobExecutionStatus.Failed) { // log error RequestTimeout(new RebuildIndexInternal(sagaTimeout.EventStoreIndexRequest, DateTime.UtcNow.AddSeconds(30))); } else if (result == JobExecutionStatus.Completed) { var finalize = new FinalizeEventStoreIndexRequest(sagaTimeout.EventStoreIndexRequest.Id); commandPublisher.Publish(finalize); } }