Pythonでジョブキュー的に処理を外に投げたい場合に
Django+Celeryが良く見るやつ。
公式の通りにやれば特に問題なく動く。
で、一つ気になったところ。
これって、Djangoのアプリの中で下の感じで処理を投げるじゃないですか。
def aaction(request):
res = some_task.delay()
return HttpResponse(f"Delay Task!!!")
そしたら、Workerサーバというかサービスが↑でジョブキューに入った
処理依頼を処理する流れじゃないですか。
で、その時のWorkerプロセスの動きが、どう見ても、毎回Djangoアプリを初期起動してるんだよね。
そういうもん?バッチ処理的に使うなら、起動時間は全体の処理時間からみて
問題にならないって事なんかな?
2~3秒かかる程度の処理は投げない方が良い感じ?
それなりに大きいアプリだと起動処理もそこそこオーバーヘッドあると思うんだけど。。。
多分中で、django.setup()してると思うんだけど、
どうなんでしょ。何となく、起動時にsetup()はやって使いまわして欲しいのですが。。。
つか、それやったら、Djnagoの普通のWebサーバだろみたいな感じかしらね。
何とも釈然としないモヤモヤ感。
何かいいやり方ないかなー。もうちょい検討。。。