Я реализовал context.eventId
, но теперь я столкнулся со следующей проблемой.Очевидно, я не ожидаю, что вызовы будут инициироваться в том же порядке или даже только один раз за действие, но, тем не менее, одно и то же событие, происходящее с интервалом в 10 секунд, кажется довольно плохим.
- Первый триггерв 17: 07: 33 (
- Второй запуск в 17: 07: 43 ( 10 секунд позже)
- Третий триггер в 17: 07: 54 ( 11 секунд позже)
Между тем же событием, которое сработало три раза (с интервалом в 10 секунд), другие транзакции имеютпроизошло также, поэтому, когда он в первый раз сработал, он сохранил, что eventId
, а затем потерял его, потому что произошло другое событие. Затем то же самое событие сработало снова, через 10 секунд, которое, очевидно, не было помечено как дубликат, учитывая lastEventId
был уже перезаписан предыдущими транзакциями (которые произошли в течение этого 10-секундного перерыва).
Как это возможно? Как мы можем обойти это? Для их обработки требуется всего ~ 150 мс, так что это не большойфайл функций which нужно много времени во время холодной загрузки.Он кэшировал глобальные переменные (firestore), он лениво загружает переменные, которые я использую в определенных функциях.В общем, это легкий файл функций.Только 250 строк кода с 9 функциями внутри одного и того же файла.