Единственная причина, по которой я могу думать, это если у вас есть received()
сообщение, но он не вызвал complete()
или abandon()
. В этом случае сообщение «скрыто» в течение определенного периода времени (по умолчанию 30 секунд). За это время ваше сообщение будет положительным, даже если вы не можете получать сообщения.
По истечении 30 секунд (по умолчанию) сообщения становятся видимыми, и вы можете снова добавить . Обратите внимание, что свойство .DeliveryCount
увеличивается каждый раз, когда вы получаете сообщение до тех пор, пока оно не достигнет 10 (по умолчанию), и сообщение будет сброшено в подпункт «мертвая буква».
Обязательно всегда звоните complete()
по любому сообщению, которое вы обработали. Вызовите abandon()
, если вы хотите, чтобы он был немедленно доступен в очереди для обработки другого рабочего. Также проверьте свойство DeliveryCount
, чтобы убедиться, что вы не обрабатываете сообщение дважды. (Это может произойти, если вы долго обрабатываете сообщение перед вызовом complete()
, и к тому времени блокировка была освобождена.)
Отметьте это сообщение, поскольку у меня были такие же проблемы: http://stackoverflow.com/questions/25762485/ лазурь-сервис-шинные очереди сообщений-есть-застревают – jglassco