public async Task OnWorkSucceededAsync(IUnitOfWork unitOfWork) { var dispatchResult = await asyncEventQueueDispatcher.DispatchToQueuesAsync(eventMessages, null, null); eventMessages.Clear(); if (dispatchResult.EnqueuedEventsAsyncProcessed.Count > 0) { await asyncEventProcessor.EnqueueForAsyncProcessingAsync(dispatchResult.EnqueuedEventsAsyncProcessed, null); } if (dispatchResult.EnqueuedEventsSyncProcessed.Count > 0) { await asyncEventProcessor.ProcessSynchronously(dispatchResult.EnqueuedEventsSyncProcessed); } }
public async Task CatchUpAsync() { var nondispatchedEvents = (await readRepository .Where <EventStreamRow>(x => !x.IsDispatchedToAsyncQueues) .OrderBy(x => x.StreamId) .ThenBy(x => x.StreamSequenceNumber) .ToListAsync(readRepository)) .Select(x => new EventStoreRecordAdapter(x, eventSerializer)).ToList(); if (nondispatchedEvents.Count > 0) { var messages = nondispatchedEvents.Select(EventStoreEventMessage.FromRecord); await asyncEventQueueDispatcher.DispatchToQueuesAsync(messages, null, null); } }
public async Task CatchUpAsync() { var nondispatchedEvents = (await readRepository .Where <ExternalEventRecord>(x => !x.IsDispatchedToAsyncQueues) .ToListAsync(readRepository)); if (nondispatchedEvents.Count > 0) { var messages = nondispatchedEvents.Select(x => { var @event = eventSerializer.DeserializeEvent(x.EventJson, new VersionedTypeId(x.EventName, x.EventVersion)); var metadata = eventSerializer.DeserializeEventMetadata(x.MetadataJson); return(EventMessage.FromEvent(@event, metadata)); }); await asyncEventQueueDispatcher.DispatchToQueuesAsync(messages, null, null); } }