Итак, я думаю, что вы ответили на вопрос в документации, которую вы вставили. Все, что делает shovel
, - это перемещает сообщения из одной очереди в другую, повторно публикуя их в процессе. Он сохранит все исходные свойства сообщения, которые теоретически включают свойство TTL.
При этом я не верю, что вам нужно о чем-то беспокоиться.
- Сообщение TTL запускается, когда очередь получает сообщение. Когда сообщение повторно публикуется, часы сбрасываются в новой очереди.
- Сообщения, транспортируемые с помощью
shovel
, в идеале должны тратить не более нескольких миллисекунд в исходной очереди, если они вообще туда попадают (очередь сообщений с подключенным потребителем фактически не ставит в очередь сообщения в большинстве случаев. ). Таким образом, время, проведенное в первой очереди, должно быть настолько маленьким, что это не имеет значения.
- Время жизни сообщения должно иметь достаточный допуск для сетевого транспорта и т. Д., Поэтому действия
shovel
соответствуют нормальному шуму.
Если вы попадаете в ситуацию, когда в очереди накапливается большое количество сообщений, прежде чем они могут быть shovel
'd, вам может потребоваться обработать истечение срока действия в вашем приложении. В этом есть и другие преимущества и предостережения, но в целом вы получаете более тонкий контроль.