Работа над Джанго проекта питона, вот что я хочу:питон Джанго состояние гонки с сельдерей
доступ пользователя
Page1
с объектом аргумента функцииlongFunction()
объекта вызывается и передается сельдерей так страницы может быть возвращено немедленноЕсли пользователь пытается получить доступ к
Page2
с таким же объектом аргументом, я хочу страницу дотянуть до функцииlongFunction()
объекта, вызваннойPage1
прекращается.
Поэтому я попытался заблокировать mysql db row с объектами.select_for_update(), но это не сработает.
Вот упрощенная версия моего кода:
def Page1(request, arg_id):
obj = Vm.objects.select_for_update().get(id=arg_id)
obj.longFunction.delay()
return render_to_response(...)
def Page2(request, arg_id):
vm = Vm.objects.select_for_update().get(id=arg_id)
return render_to_response(...)
Я хочу, чтобы Page2
виснет на линии vm = Vm.objects.select_for_update().get(id=arg_id)
до longFunction()
завершена. Я новичок в сельдерее, и похоже, что соединение mysql, инициированное на странице 1, теряется при возврате страницы, даже если longFunction()
не завершен.
Есть ли другой способ добиться этого?
Благодаря
Обратите внимание, что лучше подождать в интерфейсе, вы можете взглянуть на jobtastic, например: http://policystat.github.io/jobtastic/, что делает это проще. – asksol