Skip to content

Instantly share code, notes, and snippets.

@baybatu
Last active October 13, 2022 10:14
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save baybatu/b02316ee6845863cd2b6352991e0f54d to your computer and use it in GitHub Desktop.
Save baybatu/b02316ee6845863cd2b6352991e0f54d to your computer and use it in GitHub Desktop.
RabbitMQ: mesajı geciktirerek tüketmek

RabbitMQ: Mesajı Geciktirerek Tüketmek

  • delay-exchange: Geciktirilecek mesajın bırakıldığı exchange.
  • delay-queue: delay-exchange'e bağlı. Herhangi bir tüketicisi olmamalı.
  • ana-exchange: Geciktirilmeden tüketilmek istenen mesajların bırakılabileceği exchange.
  • ana-queue: ana-exchange'e bağlı kuyruk. Tüketicisi var.

delay-queue şu parametrelerle oluşturulur:

  • x-dead-letter-exchange: -- boş
  • x-message-ttl: 3000 -- mesajın bekletileceği milisaniye
  • x-dead-letter-routing-key: ana-queue -- mesajın yaşam süresi dolunca aktarılacağı kuyruk.

Geciktirilerek işlenmek istenen mesaj delay-exchange'e bırakılır. Mesaj oradan delay-queue'a geçer. delay-queue'nun herhangi bir tüketicisi olmadığından mesaj burada x-message-ttl kadar bekler. Bu süre dolduktan sonra x-dead-letter-routing-key parametresindeki kuyruğa (ana-queue) aktarılır. Aktarılan mesaj bu kuyruk üzerinden tüketilir.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment