7

問題なくタスクを実行できます

    scrape_adhoc_reporting([store], [types], inventory)

ただし、このタスクには簡単に 1 時間かかることがあるため、これは問題です。だから私はタスクを非同期にしようとします。私は次の両方を試しました:

    scrape_adhoc_reporting.apply_async(args=[[store], [types], inventory])
    scrape_adhoc_reporting.delay([store], [types], inventory)

これらの方法はどちらも機能しませんでした。ビューは必要に応じてリダイレクトされますが、タスクは実行されません。エラーログにエラーはありません。私が間違っていることについての洞察はありますか?

編集:もう少し調べてみると、タスクの登録について話している人がいます。これは私がしなければならないことですか?

4

3 に答える 3

1

リモートで実行する場合は、そのタスクをロードして実行するワーカー プロセスと、呼び出し元とワーカーの間でタスク要求を送信するように構成されたルーティング システムが必要です。

ワーカータスクのセロリのドキュメントをご覧ください。

実行しているコードは、タスクをローカルで実行しているだけです。

于 2013-04-05T12:27:13.693 に答える
0

通常、Windows で非同期の celery タスクを使用すると、パラメーターを設定することで修正されるエラーが発生します。

つまり、ファイルcelery.pyのDjangoでは、次のことを行う必要があります。

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'main.settings') os.environ.setdefault('FORKED_BY_MULTIPROCESSING', '1') <== Windows との互換性のために、この行を追加してください。

これにより、Windows の問題が修正され、他のシステムで非互換性の問題が発生することはありません。

于 2020-06-11T10:04:23.127 に答える