title: Ensuring the order of tasks from different sources in Celery
body: <p>May ask you a question about Celery?</p>
  
  <p>I have different writers that write a task every X minutes. Every task needs that the task from the same writer is completed. The system as is working well, as X minutes >> few seconds to do the tasks.</p>
  
  <p>But, now, it may happen that the writers sends two or three tasks in the same time. Obviously, Celery + RabbitMQ will distribute this tasks to different workers, creating troubles.</p>
  
  <p>I've searched, but I found responses about blocking with a lock a worker until the other finished (using for example Redis), but this is not possible, as I have less workers that writer.</p>
  
  <p>I need something like N queues for N writers, and Celery capable to understand the order in each queue. I will have literally thousands of writers, so I can't create so many workers.</p>
  
  <p>Example:
  A B C writers, A1, A2... tasks, and only one worker</p>
  
  <p>I receive, in the "same" time
  A1,A2,B1,C1,B2,C2,A3,B3,C3 </p>
  
  <p>Celery should create the queue
  A (1-2-3)
  B (1-2-3)
  C (1-2-3)</p>
  
  <p>And the sending the task A1, then, the next, it's not important if is A2,B1,C1, but it shouldn't be A3,B2,B3,C2,C3.</p>
  
  <p>Hope I explained well</p>
  
  <p>Thanks!</p>