別のマシン (既知の IP を持つ) がスプレッドシートを Web サーバーにアップロードできる django Web サーバーを開発しています。スプレッドシートが更新された後、スプレッドシートでいくつかの処理/検証/分析をトリガーし (5 分以上かかる場合があります --- 他のサーバーが応答を合理的に待つには長すぎます)、他のマシンを送信します (データ処理が終了したことを示す HttpResponse。
processing.data()
を返した後はできないことはわかっていますがHttpResponse
、機能的には次のようなコードが必要です。
# processing.py
def spreadsheet(*args, **kwargs):
print "[robot voice] processing spreadsheet........."
views.finished_processing_spreadsheet()
# views.py
def upload_spreadsheet(request):
print "save the spreadsheet somewhere"
return HttpResponse("started processing spreadsheet")
processing.data()
def finished_processing_spreadsheet():
print "send good news to other server (with known IP)"
各関数を個別に記述する方法は知っていますが、応答が返されたprocessing.data()
後に効果的に呼び出すにはどうすればよいでしょうか? views.upload_spreadsheet
django のrequest_finished
シグナリング フレームワークを使用してみましたが、これはprocessing.spreadsheet()
を返した後にメソッドを トリガーしませんHttpResponse
。views.upload_spreadsheet
同じ問題でデコレータを使用してみました。
これは、ミドルウェアまたはカスタムのクラスベースのビューを作成することと関係があるのではないかと考えていますが、どちらも経験がないので、助けを求めて宇宙に質問を投げかけようと思いました。
ご協力いただきありがとうございます!