Если ничего не существует, это потому, что это "на самом деле" невозможно.
Во-первых, полезно спросить «Когда Pubsub генерирует двойные значения?» .Только когда сообщение доставлено и подтверждение не получено (или не отправлено в ожидаемый период времени, по умолчанию 10 с), или в режиме push не получен HTTP 200.
2nd: Что такое Beam?Луч - это трубопроводный двигатель.Вы можете подключить к нему свой PubSub, и ваш конвейер будет читать сообщения и дедуплицировать их.Будьте осторожны, эта дедупликация выполняется Beam в течение 10–20 минут.
3-й: Что означает «заказано»?Посмотрите на идентификатор вашего сообщения.Значение представляет собой метку времени в микросекундах (поэтому PubSub может принимать до 1M сообщений в секунду).Заказанное сообщение означает наличие сообщения для последовательного идентификатора, иначе поместите в буфер и дождитесь заполнения пробелов.Конечно, пробелы никогда не будут заполнены ...
Вернитесь к Лучу.Луч имеет возможность определять окна наблюдения .Кстати, вы можете определить, например, скользящие окна по 5 минут, каждое из которых запускается каждую минуту.Когда окно закрывается, запускается PCollection сообщений, и он обрабатывается в вашем конвейере.На этой конечной коллекции вы можете заказать ваше сообщение.
По тому же принципу вы можете вручную удалить депубликации в этой коллекции.
Последняя информация, PubSub - это основа службы Google.Он развивается медленно, потому что это важно.Но, возможно, ваше требование будет выпущено через день!