Я разрабатываю веб-сервер 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
вернул ответ?
Я пытался использовать сигнальную платформу request_finished
django , но это не вызывает метод processing.spreadsheet()
после возврата HttpResponse
.Я попытался использовать декоратор на views.upload_spreadsheet
с той же проблемой.
У меня есть подозрение, что это может быть связано с написанием промежуточного программного обеспечения или, возможно, настраиваемого представления на основе классов , с которым я не имел никакого опытаЯ думал, что задам вопрос вселенной в поисках какой-нибудь помощи.
Спасибо за вашу помощь!