私はRabbitMQでCeleryを実行しているサーバーを持っています。しかし、send_taskを使用してタスクを送信しようとすると、AsyncResultオブジェクトが返されます。
しかし、実際の作業は、私のセロリの設定があるCelery send_taskはタスクを送信しません
c = Celery("tasks", broker="amqp://[email protected]//")
c.send_task("tasks.printing.test_print", (100), queue="print_queue", routing_key="printing.test_print")
(労働者とキューが空であっても)実行されていない:
CELERY_QUEUES = (
Queue('default', routing_key='task.#'),
Queue('print_queue', routing_key='printing.#'),
)
CELERY_DEFAULT_EXCHANGE = 'tasks'
CELERY_ROUTES = {
'tasks.printing.test_print': {
'queue': 'print_queue',
'routing_key': 'printing.test_print',
}}
BROKER_URL = 'amqp://'
私は1つのワーカーを実行します。
celery -A celerymain worker --loglevel=debug
を
これは最初のログです:
- ** ---------- [config]
- ** ---------- .> app: __main__:0x7eff96903b50
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: amqp://
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ----
--- ***** ----- [queues] -------------- .> default exchange=tasks(topic) key=task.#
.> print_queue exchange=tasks(topic) key=printing.#
[tasks] . test_print
これは、タスクです:
class test_print(Task):
name = "test_print"
def run(self,a):
log.info("running")
print a
RabbitMQのキュー「print_queue」が空のままと新しいものがRabbitMQのログにはありません。
4GBの空き容量があるので、ディスク容量の問題ではありません。
何が問題なのですか?
あなたが言おうとしているこれは何が問題だった理由
は、私は本当に知りませんが、少なくともそれが動作しますか? – Drxxd