как подписаться на поток и жестко удалить поток, чтение которого сделано - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть приложение на C #, где я использую nuget 'Marten' для вставки всех событий, которые генерируются через приложение.

 var store = DocumentStore.For(_ =>
            {
                _.Connection(connectionString);
            });


            var messageId = Guid.NewGuid();

            using (var session = store.OpenSession())
            {
                session.Events.StartStream<MessageForPersist>(messageId, eventData);
                session.SaveChanges();
            } 

Здесь у меня есть только добавление нового потока, обновлений нет.Поток на всех, и приложение является конституцией, продвигающей поток, и, очевидно, все магазины под postgresSql таблицами mt_events.

Теперь я хочу другое приложение в качестве подписки на потоки, где я хочу,

  1. Указатель, который говорит мне, что вы читаете поток до этого момента, и когда чтение завершено, мне нужно жестко удалить потоки.

  2. в следующий раз (скажем, после5 минут), мне снова нужны все новые потоки и т. Д.

Пожалуйста, предложите возможный путь.Спасибо!

Я могу читать все потоки,

using (var session = store.OpenSession())
        {
            var x = session.Events.QueryRawEventDataOnly<MessageForPersist>().ToList();
        } 
...