如何解决将函数用作视图和芹菜任务
我使用 Django 2.2.12 和 Celery 4.4.7
我有一些功能(例如:下载图片)需要同时用作视图和计划的重复任务。设置它的最佳方法是什么?下面的代码生成以下错误消息:
NameError: name 'downloadpictures' 未定义
downloadapp/views.py
def downloadpictures(request=None):
xxx
xxx
downloadapp/tasks.py
from downloadapp import downloadpictures
@shared_task
def downloadpicturesregular():
downloadpictures()
celery_tasks.py
app.conf.beat_schedule = {
'downloadpictures_regular':
{
'task': 'downloadapp.tasks.downloadpicturesregular','schedule': crontab(hour=18,minute=40,day_of_week='thu,sun'),},
解决方法
通常,您的视图需要了解您的任务,而您的任务并不关心视图。如果您的应用程序符合该假设,您应该将逻辑提取到第三个模块或 tasks.py
函数中。然后从任务和视图调用该函数,或者从视图调用任务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。