浏览代码

Added FAQ: Why isn't my tasks processed.

Ask Solem 15 年之前
父节点
当前提交
41376a7106
共有 1 个文件被更改,包括 41 次插入0 次删除
  1. 41 0
      FAQ

+ 41 - 0
FAQ

@@ -2,6 +2,9 @@
  Frequently Asked Questions
  Frequently Asked Questions
 ============================
 ============================
 
 
+Troubleshooting
+===============
+
 MySQL is throwing deadlock errors, what can I do?
 MySQL is throwing deadlock errors, what can I do?
 -------------------------------------------------
 -------------------------------------------------
 
 
@@ -47,6 +50,38 @@ I'm having ``IntegrityError: Duplicate Key`` errors. Why?
 **Answer:** See `MySQL is throwing deadlock errors, what can I do?`_.
 **Answer:** See `MySQL is throwing deadlock errors, what can I do?`_.
 Thanks to howsthedotcom.
 Thanks to howsthedotcom.
 
 
+Why isn't my tasks processed?
+-----------------------------
+**Answer:** With RabbitMQ you can see how many consumers are currently
+receiving tasks by running the following command::
+
+    $ rabbitmqctl list_queues -p <myvhost> name messages consumers
+    Listing queues ...
+    celery     2891    2
+
+This shows that there's 2891 messages waiting to be processed in the task
+queue, and there are two consumers processing them.
+
+One reason that the queue is never emptied could be that you have a stale
+celery process taking the messages hostage. This could happen if celeryd
+wasn't properly shut down.
+
+When a message is recieved by a worker the broker waits for it to be
+acknowledged before marking the message as processed. The broker will not
+re-send that message to another consumer until the consumer is shutdown
+properly.
+
+If you hit this problem you have to kill all workers manually and restart
+them::
+
+    ps auxww | grep celeryd | awk '{print $2}' | xargs kill
+
+You might have to wait a while until all workers has finished the work they're
+doing, if it's still hanging after a long time you can kill them by force
+with::
+
+    ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9
+
 Why won't my Task run?
 Why won't my Task run?
 ----------------------
 ----------------------
 
 
@@ -96,6 +131,9 @@ same worker when it has been restarted), so to properly purge the queue of
 waiting tasks you have to stop all the workers, and then discard the tasks
 waiting tasks you have to stop all the workers, and then discard the tasks
 using ``discard_all``.
 using ``discard_all``.
 
 
+Brokers
+=======
+
 Can I use celery with ActiveMQ/STOMP?
 Can I use celery with ActiveMQ/STOMP?
 -------------------------------------
 -------------------------------------
 
 
@@ -173,6 +211,9 @@ using the STOMP backend:
 
 
     * mandatory
     * mandatory
 
 
+Features
+========
+
 Can I send some tasks to only some servers?
 Can I send some tasks to only some servers?
 --------------------------------------------
 --------------------------------------------