Does pausing / unpausing Oban queues persist application restarts?

If I call Oban.pause_all_queues() and restart my Elixir application, when it comes back up, will the queues still be paused?

I’m guessing that the paused/running state is stored in the db and therefore the answer is yes. But the fact that you can pause/resume per node makes me less certain. Maybe the db stores a map of paused states per node and queue?

Only with DynamicQueues, because those have options persisted in the database. Regular OSS queues don’t persist any state, so in that case, no.

Then a limit change or pause is scoped to a single node it isn’t persisted. Changes are only persisted when it applies to all nodes. Storing a map of options would only work in very simple setups where the node name is re-used across deployments and restarts and there isn’t any scaling.

2 Likes