Я пытаюсь понять, как запустить процесс в фоновом потоке в Django. Я новичок как в Django, так и в темах, поэтому, пожалуйста, потерпите меня, если я неправильно использую терминологию.
Вот код, который у меня есть. По сути, я бы хотел, чтобы start_processing
началось, как только сработает функция success
. Однако start_processing
- это такая функция, которая может легко занять несколько минут или потерпеть неудачу (она зависит от внешней службы, над которой у меня нет контроля), и я не хочу, чтобы пользователь ждал, пока она успешно завершится перед представлением. («Успех» в их отношении не зависит от результата start_processing
; я единственный человек, которому нужно беспокоиться, если он потерпит неудачу.)
def success(request, filepath):
start_processing(filepath)
return render_to_response('success.html', context_instance = RequestContext(request))
Из проведенного мной поиска в Google большинство людей полагают, что фоновые потоки не используются в Django, и вместо этого более подходящей является работа cron. Но я бы очень хотел, чтобы start_processing
начался, как только пользователь доберется до функции успеха, а не ждал, пока запустится задание cron. Есть ли способ сделать это?