title: Celery - run different workers on one server
body: <p>I have 2 kind of tasks :
  Type1 - A few of high priority small tasks.
  Type2 - Lot of heavy tasks with lower priority.</p>
  
  <p>Initially i had simple configuration with default routing, no routing keys were used. It was not sufficient - sometimes all workers were busy with Type2 Tasks, so Task1 were delayed.
  I've added routing keys:</p>
  
  <pre><code>CELERY_DEFAULT_QUEUE = "default"
  CELERY_QUEUES = {
      "default": {
          "binding_key": "task.#",
      },
      "highs": {
          "binding_key": "starter.#",
      },
  }
  CELERY_DEFAULT_EXCHANGE = "tasks"
  CELERY_DEFAULT_EXCHANGE_TYPE = "topic"
  CELERY_DEFAULT_ROUTING_KEY = "task.default"
  
  CELERY_ROUTES = {
          "search.starter.start": {
              "queue": "highs",
              "routing_key": "starter.starter",
          },
  }
  </code></pre>
  
  <p>So now i have 2 queues - with high and low priority tasks.</p>
  
  <p><strong>Problem is</strong> - how to start 2 celeryd's with different concurrency settings?</p>
  
  <p>Previously celery was used in daemon mode(according <a href="http://celeryproject.org/docs/cookbook/daemonizing.html" rel="noreferrer">to this</a>), so only start of <code>/etc/init.d/celeryd start</code>  was required, but  now i have to run 2 different celeryds with different queues and concurrency. How can i do it?</p>