Class InMemoryEventHubStorage
Inheritance
InMemoryEventHubStorage
Assembly: FastEndpoints.Messaging.Remote.dll
Syntax
public sealed class InMemoryEventHubStorage : IEventHubStorageProvider<InMemoryEventStorageRecord>
Methods
GetNextBatchAsync(PendingRecordSearchParams<InMemoryEventStorageRecord>)
fetch the next batch of pending event storage records that need to be processed.
Declaration
public ValueTask<IEnumerable<InMemoryEventStorageRecord>> GetNextBatchAsync(PendingRecordSearchParams<InMemoryEventStorageRecord> p)
Parameters
Returns
MarkEventAsCompleteAsync(InMemoryEventStorageRecord, CancellationToken)
mark the event storage record as complete by either replacing the entity on storage with the supplied instance or
simply update the IsComplete field to true with a partial update operation.
Declaration
public ValueTask MarkEventAsCompleteAsync(InMemoryEventStorageRecord e, CancellationToken ct)
Parameters
Returns
PurgeStaleRecordsAsync(StaleRecordSearchParams<InMemoryEventStorageRecord>)
this method will be called hourly. implement this method to remove stale records (completed or expired) from storage.
or instead of removing them, you can move them to some other location (dead-letter-queue maybe) or for inspection by a human.
or if you'd like to retry expired events, update the ExpireOn field to a future date/time.
NOTE: the default match criteria is:
r => r.IsComplete || DateTime.UtcNow >= r.ExpireOn
Declaration
public ValueTask PurgeStaleRecordsAsync(StaleRecordSearchParams<InMemoryEventStorageRecord> p)
Parameters
Returns
RestoreSubscriberIDsForEventTypeAsync(SubscriberIDRestorationParams<InMemoryEventStorageRecord>)
this method will only be called once (for each event type) on app startup. if there are any pending records on storage from a previous app run,
simply return a collection of unique subscriber IDs.
Declaration
public ValueTask<IEnumerable<string>> RestoreSubscriberIDsForEventTypeAsync(SubscriberIDRestorationParams<InMemoryEventStorageRecord> p)
Parameters
Returns
StoreEventAsync(InMemoryEventStorageRecord, CancellationToken)
store the event storage record however you please. ideally on a nosql database.
Declaration
public ValueTask StoreEventAsync(InMemoryEventStorageRecord e, CancellationToken _)
Parameters
Returns
Implements