I want an application to pull an item off a queue, process the item on the queue and then destroy itself. Pull -> Process -> Destroy.
I've looked at using the job pattern Queue with Pod Per Work Item as that fits the usecase however it isn't appropriate when I need the job to autoscale aka 0/1 pods when queue is empty and scale to a point when items are added. The only way I can see doing this is via a deployment but that removes the pattern of Queue with Pod per Work Item. There must be a fresh container per item.
Is there a way to have the job pattern Queue with Pod Per Work Item but with auto-scaling?
The only way I can see doing this is via a deployment but that removes the pattern of Queue with Pod per Work Item.
Is this your pain point? You want to ensure that a pod will process exactly one message then destroy itself? If so, then you can achieve that by fetching exactly one item and exiting accordingly in your code. – Anas Tiour