我正在开发一个 django 网络服务器,另一台机器(具有已知 IP)可以将电子表格上传到我的网络服务器。电子表格更新后,我想在电子表格上触发一些处理/验证/分析(这可能需要超过 5 分钟 --- 太长了,其他服务器无法合理地等待响应),然后发送另一台机器(使用已知 IP)一个 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
在同样的问题上使用装饰器。
我有一种暗示,这可能与编写中间件或可能与自定义基于类的视图有关,我对此都没有任何经验,所以我想我会向宇宙提出问题以寻求帮助。
谢谢你的帮助!