Simply put, I want to implement the same function of ServiceBusReceiver.RenewMessageLockAsync
of Azure Service Bus queue in RabbitMQ. This function lets the message consumer "extend" the "holding" time of a message that has been received by the consumer. By saying "holding" time, I mean the timeout after which a message will be requeued, or made visible again, in a queue by the message broker. I know I can set a timeout to a queue in RabbitMQ, so that a message that is not acknowledged by a consumer within that time will be visible in the queue again. But I want to dynamically extend the time that a message can be held by a consumer. This is critical to process a task whose cost in time is not predictable: it may be seconds, hours or even days. So it doesn't look good to set a very long time out for all the tasks (messages). Could anyone help please?
If that's not possible in RabbitMQ, are there any open source message brokers that can do it?