#ruby-on-rails #events #timestamp #metadata #rails-event-store
#ruby-on-rails #Мероприятия #временная метка #метаданные #rails-event-store
Вопрос:
Каждому ли событию Rails Event Store, которое было опубликовано, автоматически присваивается a timestamp
? Я пытаюсь создать функциональность, которая зависит от того, что временная метка автоматически присутствует для событий deserialize
event_store
, разделяемых внутри задания, но я не знаю, могу ли я на это положиться. Я надеюсь, что не нужно вручную добавлять a timestamp
к событию metadata
, чтобы a timestamp
присутствовало, поскольку не похоже, что это было сделано где-либо в базе кода, над которой я работаю. Я знаю, что в документах указано, что возвращаемое значение RubyEventStore::Event#timestamp
метода может быть nil
, но я надеюсь, что это не будет nil
для опубликованных событий.
Ответ №1:
Если вы не предоставите свою собственную временную метку ( :timestamp
ключ в метаданных), каждое сохраненное событие будет иметь метаданные, обогащенные текущим временем — см. https://github.com/RailsEventStore/rails_event_store/blob/master/ruby_event_store/lib/ruby_event_store/client.rb#L311
Это может быть nil
. Но только в том случае, если ваш clock
предоставленный клиенту RailsEventStore вернет nil.
В предстоящем выпуске Rails Event Store 2.0 мы также добавим время действия ( valid_at
атрибут в метаданных), что позволит реализовать двухвременный поиск событий. Следите за обновлениями.
Комментарии:
1. Спасибо! Как я могу узнать
clock
, предоставляется ли клиенту RES, который вернетсяnil
?2. По умолчанию часы определены здесь: github.com/RailsEventStore/rails_event_store/blob/master /… Если вы не передадите что-то другое, невозможно, чтобы временная метка была равна нулю.