D_P*_*D_P 1 django django-views celery
在这里我使用的apply_async
方法与countdown
和expires
参数一些倒计时后执行任务,并在到期日期时间的某些任务。
但我收到了这个错误
Django Version: 3.0.6
Exception Type: TypeError
Exception Value: schedule_task() argument after * must be an iterable, not int
Run Code Online (Sandbox Code Playgroud)
如何解决这个错误?
任务
@periodic_task(run_every=crontab(minute=1), ignore_result=False)
def schedule_task(pk):
task = Task.objects.get(pk=pk)
unique_id = str(uuid4())
Run Code Online (Sandbox Code Playgroud)
意见
form = CreateTaskForm(request.POST)
if form.is_valid():
unique_id = str(uuid4())
obj = form.save(commit=False)
obj.created_by = request.user
obj.unique_id = unique_id
obj.status = 0
obj.save()
form.save_m2m()
# schedule_task.delay(obj.pk)
schedule_task.apply_async((obj.pk),expires=datetime.datetime.now() + datetime.timedelta(minutes=5), countdown=int(obj.search_frequency))
return redirect('crawler:task-list')
Run Code Online (Sandbox Code Playgroud)
小智 5
也许这对你有帮助。有关更多信息,请查看https://docs.celeryproject.org/en/stable/userguide/calling.html#id2
schedule_task.apply_async(expires=datetime.datetime.now() + datetime.timedelta(minutes=5), countdown=int(obj.search_frequency),kwargs={"pk":obj.pk})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
666 次 |
最近记录: |