Currently, each instance seems to grab from the queue all there is, then creates its own internal queue with this. When multiple parallel rworker instances read from the same queue, this is bad. They don't know how long the tasks will run, so it could be that one gets a long-running task and the other is done after a few minutes, but the first has already grabbed the other tasks from the queue.
Each instance should only take from the queue what it can immediately run and leave all other requests in the queue, so that potential other instances can grab it if they have a worker available.
Currently, each instance seems to grab from the queue all there is, then creates its own internal queue with this. When multiple parallel rworker instances read from the same queue, this is bad. They don't know how long the tasks will run, so it could be that one gets a long-running task and the other is done after a few minutes, but the first has already grabbed the other tasks from the queue.
Each instance should only take from the queue what it can immediately run and leave all other requests in the queue, so that potential other instances can grab it if they have a worker available.