Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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);
            }
        }