I am trying to implement the following scenario with Celery: two queues of (identical) long-running tasks, one for "normal" and one for "idle" priority.
I would force the workers to control both queues and first perform tasks from the "normal" priority queue, and if it is empty, it will perform tasks with an "unoccupied" priority.
My question is: is it possible to guarantee the order in which workers will check the queues of their tasks? Also, is this the right approach for implementing priorities?
Reference Information. In tasks, ffmpeg transcoding jobs are performed. The "usual" priorities will be new videos (which should be transcoded as ASAP), and the priority of "inaction" will be the tasks of transcoding the old (40.000+ videos) archives into updated formatting options. I do not have several servers available for dispatching multiserver tasks.
django celery rabbitmq django-celery
Mavrik
source share