Я пытаюсь выяснить, как запустить процесс в фоновом потоке в 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))
Из Googling, который я сделал, большинство людей полагают, что фоновые потоки не используются в Django, и вместо этого задача cron более подходит. Но мне бы очень хотелось, чтобы start_processing
начинался, как только пользователь добирался до функции успеха, а не ожидал, пока работа cron запустится. Есть ли способ сделать это?