セロリの作業者とRedisキューを実行するサーバーがあります。タスクは、そのサーバーで定義されています。
これらのタスクをリモートマシンから呼び出せるようにする必要があります。
私はそれがsend_task
を使用して行われていることを知っていますが、私はまだ考え出していませんか?キューがどこにあるのかをsend_task
に伝えるには?接続パラメータ(または必要なもの)はどこに渡すのですか?私は時間を探してきたと私は見つけることができるすべてはこれです:セロリ - リモートマシンからタスクを送信するには?
from celery.execute import send_task
send_task('tasks.add')
、それは私も私の呼び出し元のマシン上でcelery
が必要であることを意味します。しかし、私は何をセットアップする必要がありますか?
私は最近、send_task呼び出しが正しいが、サーバーがタスクを見つけられなかった同様の問題があった。 「タイプの未登録タスクを受け取りました...」というエラーが表示されました。これを解決するには、タスク定義のdecoratorに 'name'引数を追加します。例が見つかりました[ここ](https://gist.github.com/johnpaulhayes/8403108) – johnpaulhayes
OK、これは素晴らしい人です...今は本当のテストです。そのコールバックをどのように活用すれば、タスクから返された実際の値を得ることができますか? – chuckjones242
何時間も私を捨ててしまったのは、私の製作スクリプトが「仕事」をしているキューを定義する必要があるということでした。最後に 'celery.send_task( 'tasks.the_remote_task_name'、([arguments、...])、 queue = 'name_of_queue')'これから得たものです(https://www.marshut.net/ipwtin /sending-tasks-from-a-マシンとランニング - 陶器 - 労働者 - その他 - マシン - 他) – lukik