Using Oban on functions that return

That’s correct. Each node will run up to the limit you specify. If you absolutely must run a single job at a time you can dynamically determine whether to start a queue when your app starts

You can rely on consistent naming to do this by checking the DYNO environment variable (i.e. web.1).

I would advise against relying on global limits though because you’ll still have overlap during rolling deploys and the implementation may be fragile.