How to configure solid_queue with two queues, one for general purpose "one at a time" and another for a rate limited API?

You can provide a single queue, or a list of queues as an array. Jobs will be polled from those queues in order, so for example, with [ real_time, background ], no jobs will be taken from background unless there aren’t any more jobs waiting in real_time.

  - queues: "*"
    threads: 5
    processes: 1
    polling_interval: 0.1

What I’m looking for is to have two queues:

  1. General purpose, 1 at a time concurrency.
  2. Rate limited, OpenAI API, 1 at a time concurrency.

I want an OpenAI queue job to run one at a time but never have to wait for the general purpose queue to empty.

For example in other stacks like Elixir w/Oban, I can define the concurrency of each queue but that does not affect the priority of the queue. All three queues run at the same time, just at different concurrency limits.

queues: [default: 10, howlongtobeat: 1, posthog: 1]

Is something like this possible with solid_queue?