Long time unacknowledged message in RabbitMQ -
i have business process receives order rabbitmq queue. thinking not acknowledging (meaning, leave in queue) potentially long time (>10 minutes) , either removing (acknowledging) or not (not acknowledging). make sense? best way deal long running processing on top of rabbitmq tasks?
in general ok do. i've done number of time, , has few advantages such if process crashes, unack'd message go in queue , picked again later
there potential downsides this, though.
for one, possible overload server unack'd messages. sure set consumer prefetch limit prevent happening
it's possible have processes should not restarted once running. have lot of processes this... things kick off external server processes, long-running database database oracle. in situations this, best ack message right away , use status update queue of kind know when process done.
over-all, there no "best way" handle long running tasks... there no best practices @ all. every practice use has potential benefit , potential detriment. real trick understand scenarios work best practice. need evaluate pro's , con's of approach scenario.
Comments
Post a Comment