Получить текущий номер из магазина Prooph Event
Я пытаюсь обновить прогноз из хранилища событий. Следующая строка загрузит все события:
$events = $this->eventStore->load(new StreamName('mystream'));
В настоящее время я пытаюсь загрузить только не обработанные события, передав параметр fromNumber:
$events = $this->eventStore->load(new StreamName('mystream'), 10);
Это загрузит все события, например, с 15 до 40. Но я не нашел способа выяснить, какое из них является текущим / наибольшим "нет" результатов. Но это необходимо для загрузки только из этой записи в следующий раз.
Если база данных обрезана (с перезапущенными последовательностями), это не является реальной проблемой, потому что я знаю, что события начнутся с 1. Но если первичный ключ начинается с числа, большего 1, я не могу выяснить, какое событие имеет какое число в магазин событий
1 ответ
Когда вы используете pdo-event-store, у вас есть ключ _position
в метаданных события после загрузки, чтобы ваша модель чтения могла отслеживать, какая позиция была последней, над которой вы работали. Кроме того, если вы работаете с проекциями хранилища событий proophs, вам вообще не нужно об этом заботиться. Проектор будет отслеживать текущее положение события для всех необходимых потоков внутри, вам просто нужно предоставить обратные вызовы для каждого события, где вам нужно что-то сделать.