Я хочу, чтобы сельдерей подождал, пока определенная задача c завершится sh, поэтому я установил бэкэнд-результаты сельдерея рядом с самим сельдереем. Но я не понимаю, как мне написать свой вызов задачи, чтобы ждать, пока я получаю следующую ошибку:
example_task() missing 1 required positional argument: 'user_pk'
views.py
def example(request):
user = request.user
if request.method == 'GET':
result = example_taks.apply_async(user_pk=user.pk)
result_output = result.wait(timeout=None, interval=0.5)
return redirect('something')
else:
args = {'user': user}
return redirect(reverse('something'), args)
в моих задачах .py:
def example_task(user_pk):
user = User.objects.get(pk=user_pk)
try:
...
ранее я называл беседы так:
def example(request):
user = request.user
if request.method == 'GET':
example_task.delay(request.user.pk)
...
Это работало нормально, но не дожидалось, пока задача завершится sh.
Если я просто сделаю:
result = allocate_new_bch_address.apply_async(request.user.pk)
Я также получаю ошибку:
Аргумент example_task () после * должен быть повторяемым, а не UUID
благодарен за любой совет здесь.