I want to unack message on failure and reprocess it after some time using solace-pubsubplus 1.6.0 python api.But I am not able to find such api in solace.
Can any one help me to solve this issue?
Thanks in advance
If I'm understanding correctly your situation is that you received a message, acknowledged it and now you had some failure and want to "un" acknowledge it. With traditional messaging APIs that isn't an option. Once you acknowledge the message you are telling the broker "I acknowledge that I have successfully processed this message and you can remove it". The broker then removes it from your queue so the broker can't "un" acknowledge it and make it reappear.
My suggestions would be as follows:
Note that NACK support has now been added to PubSub+ Python API since 1.9. The consuming application can issue a settle(Outcome.FAILED) and the message will go back to the queue and be made available for resend.
However, there is no delayed redelivery option: the message will be resent as soon as possible (depending on your consumer's configured sub AD window size). To implement a delayed redelivery mechanism, you'd have to do it yourself in your app... e.g. place the message in some data structure, and kick off a timer to NACK the message after 30 seconds. If the app crashes during this time, the message will still get delivered to the next available consumer (since it was never ACKed in the first place).