首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-Q调度带有自定义函数的非类型错误

Django-Q调度带有自定义函数的非类型错误
EN

Stack Overflow用户
提问于 2022-01-15 16:06:37
回答 2查看 549关注 0票数 0

我正在尝试使用Django-Q在Django项目中创建一些预定任务。问题是,每个调度任务都失败,引发下一个异常:

代码语言:javascript
复制
'NoneType' object is not callable : Traceback (most recent call last):
File "/home/ubuntu/.virtualenvs/gamesquare-pre/lib/python3.6/site-packages/django_q/cluster.py", line 432, in worker
res = f(*task["args"], **task["kwargs"])
TypeError: 'NoneType' object is not callable

这个时间表的名称如下:

代码语言:javascript
复制
from django_q.tasks import schedule

schedule('orders.mails.product', 2, 2, schedule_type='O')

然后,在mails.py (同一文件夹)中定义了方法产品:

代码语言:javascript
复制
def product(x, y)
    return x * y

My Django-q在settings.py中的配置

代码语言:javascript
复制
Q_CLUSTER = {
    'name': 'qclust',
    'workers': config('Q_CLUSTER_WORKERS', cast=int),
    'timeout': 20,
    'cpu_affinity': 1,
    'save_limit': 50,
    'queue_limit': 100,
    'redis': {
        'host': 'localhost',
        'port': 6379,
        'db': 0
    }
}

有人能帮忙解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2022-01-25 22:52:54

您的路径或函数似乎丢失或错了orders.mails.product。

确保那是存在的

票数 1
EN

Stack Overflow用户

发布于 2022-03-23 04:42:05

我相信您可能在导入方法product时遗漏了一行代码。

代码语言:javascript
复制
from .mails import product

然后,当您创建时间表时,它将如下所示:

代码语言:javascript
复制
schedule(product, 2, 2, schedule_type='O')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70723117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档