Event Store - Max age
要設定 Event Store 的 Stream 內 Event 的存活時間,可以設定 Stream 的 Max age。
透過 StreamMetadata 的 maxAge 指定 Stream 內 Event 的存活時間,然後透過 Connection.SetStreamMetadataAsync,帶入 Stream 的名稱、ExpectedVersion、以及剛設定好的 StreamMetadata。
...
var streamMetaData = StreamMetadata.Create(maxAge: TimeSpan.FromSeconds(maxAge));
conn.SetStreamMetadataAsync(streamName, ExpectedVersion.StreamExists, streamMetaData).Wait();
像是筆者這邊設定了 Stream 內 Event 的存活時間。
using EventStore.ClientAPI;
...
using (var conn = EventStoreConnection.Create(connectionString, connectionName))
{
conn.ConnectAsync().Wait();
var streamName = "MyStream";
var streamMetaData = StreamMetadata.Create(maxAge: TimeSpan.FromSeconds(10));
conn.SetStreamMetadataAsync(streamName, ExpectedVersion.StreamExists, streamMetaData).Wait();
}
Stream 內的 Event 在指定的存活時間過後就會自動被清除。