gpt4 book ai didi

python - rq 入队函数 : fails with TypeError:function_xxx() takes 2 positional arguments but 3 were given

转载 作者:可可西里 更新时间:2023-11-01 10:54:47 25 4
gpt4 key购买 nike

这困扰了我几个小时,我似乎还没有找到解决方案。

我正在使用 django-rq 对一些长时间运行的任务进行排队。在我的 tasks.py 中,我有以下内容:

from django_rq import job
@job
def long_running_task(hash, url, file_path):

#doing some work

在我的 views.py 中,

def post(self, request, hash, file_path, format=None):
URL = "http://127.0.0.1:9000/work/"
task = django_rq.enqueue(long_running_task, hash, URL, file_path)
print("job result is: ", task.result)
return JsonResponse({"task_result": task.result})

但是,当我运行它时,它失败并显示以下消息-

TypeError: long_running_task() takes 2 positional arguments but 3 were given

显然,我在这里做了一些愚蠢的事情,但我还无法弄清楚。有人可以让我知道这里发生了什么吗?

最佳答案

当你移除装饰器时会发生什么?

AFAIU,enqueue 只接受一个函数及其参数并返回一个作业。装饰器将函数声明为作业。您需要使用其中之一。

要使用装饰器,您需要执行类似以下伪操作的操作:

def post(self, request, hash, file_path, format=None):
URL = "http://127.0.0.1:9000/work/"
task = long_running_task.delay(hash, URL, file_path)
# wait some time for completion
print("job result is: ", task.result)
return JsonResponse({"task_result": task.result})

关于python - rq 入队函数 : fails with TypeError:function_xxx() takes 2 positional arguments but 3 were given,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45890670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com