ਗਲਤੀਆਂ ਅਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ਾਂ ਨੂੰ ਸੰਭਾਲਣਾ قابل اعتماد RabbitMQ consumers ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ — ਇਹ ਫ਼ੈਸਲਾ ਲੈਣਾ ਕਿ ਜਦੋਂ ਸੰਦੇਸ਼ ਪ੍ਰੋਸੈਸਿੰਗ ਫੇਲ ਹੋ ਤਾਂ ਕੀ ਕਰਨਾ ਹੈ (ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ, dead-letter, ਜਾਂ ਰੱਦ ਕਰੋ)। ਸਹੀ ਗਲਤੀ ਹ੍ਰੈਂਡਲਿੰਗ ਗੁਆਚੇ ਹੋਏ ਸੰਦੇਸ਼ਾਂ ਅਤੇ ਫਸੇ ਹੋਏ consumers ਨੂੰ ਰੋਕਦੀ ਹੈ।
ਸਮੱਸਿਆ
When a consumer fails to process a message (bad data, downstream failure, bug):
→ requeue forever → a "poison" message blocks the queue (retried endlessly)
→ discard → message LOST
→ crash → reprocess, possibly stuck again
→ need a deliberate strategy.
ਮੁੜ ਕੋਸ਼ਿਸ਼ ਦੀਆਂ ਕਾਰਜਨੀਤੀਆਂ
✓ NACK + REQUEUE → reject and requeue for retry (but limit retries — don't requeue forever)
✓ RETRY WITH BACKOFF → retry transient failures with increasing delays (e.g. via a delayed
retry queue with TTL → requeue after a delay)
✓ RETRY LIMIT → track attempts; after N failures → DEAD LETTER (don't retry forever)
✓ Distinguish TRANSIENT (retry) vs PERMANENT (dead-letter immediately) failures
