启动celery后执行任务报错:django.core.exceptions.ImproperlyConfigured
生活随笔
收集整理的這篇文章主要介紹了
启动celery后执行任务报错:django.core.exceptions.ImproperlyConfigured
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
工作的環(huán)境版本如下:
【Django?version】: 2.1
【celery version】:4.4.0rc2
【python version】: 3.7
【Redis version】:3.2.1
啟動(dòng)celery沒有報(bào)錯(cuò),但是執(zhí)行隊(duì)列任務(wù)的時(shí)候就爆出下的錯(cuò)誤:
[2019-07-07 18:43:27,756: INFO/MainProcess] Connected to redis://127.0.0.1:6379/0 [2019-07-07 18:43:27,764: INFO/MainProcess] mingle: searching for neighbors [2019-07-07 18:43:28,784: INFO/MainProcess] mingle: all alone [2019-07-07 18:43:28,818: INFO/MainProcess] celery@DESKTOP-9T9MK4N ready. [2019-07-07 18:43:28,818: INFO/MainProcess] pidbox: Connected to redis://127.0.0.1:6379/0. [2019-07-07 18:43:40,217: INFO/MainProcess] Received task: celery_tasks.tasks.send_register_active_email[c4156f7a-ea3d-457d-8b18-40cc93bb718c] [2019-07-07 18:43:40,219: ERROR/MainProcess] Task celery_tasks.tasks.send_register_active_email[c4156f7a-ea3d-457d-8b18-40cc93bb718c] raised unexpected: ImproperlyConfi gured('Requested setting EMAIL_FROM, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure( ) before accessing settings.') Traceback (most recent call last):File "c:\users\circle\appdata\local\programs\python\python37-32\lib\site-packages\celery\app\trace.py", line 385, in trace_taskR = retval = fun(*args, **kwargs)File "c:\users\circle\appdata\local\programs\python\python37-32\lib\site-packages\celery\app\trace.py", line 650, in __protected_call__return self.run(*args, **kwargs)File "C:\Users\Circle\Desktop\circle\dailyfresh\celery_tasks\tasks.py", line 25, in send_register_active_emailsender = settings.EMAIL_FROMFile "c:\users\circle\appdata\local\programs\python\python37-32\lib\site-packages\django\conf\__init__.py", line 57, in __getattr__self._setup(name)File "c:\users\circle\appdata\local\programs\python\python37-32\lib\site-packages\django\conf\__init__.py", line 42, in _setup% (desc, ENVIRONMENT_VARIABLE)) django.core.exceptions.ImproperlyConfigured: Requested setting EMAIL_FROM, but settings are not configured. You must either define the environment variable DJANGO_SETTI NGS_MODULE or call settings.configure() before accessing settings.大概意思就是沒有配置設(shè)置。您必須定義環(huán)境變量DJANGO_SETTINGS_MODULE在訪問設(shè)置之前調(diào)用settings.configure()。
解決辦法就是:
# 使用celery,首先導(dǎo)入進(jìn)來(lái) from celery import Celery from django.conf import settings from django.core.mail import send_mail# 下面就是解決辦法:將Django中的配置信息先導(dǎo)入進(jìn)來(lái) import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dailyfresh.settings') django.setup()# 創(chuàng)建一個(gè)Celery類的實(shí)例對(duì)象 app = Celery('celery_tasks.tasks', broker='redis://127.0.0.1:6379/0') # 定義任務(wù)函數(shù) @app.task def send_register_active_email(email, username, token):"""發(fā)送激活郵件"""subject = '歡迎觀看本篇文章'message = '希望對(duì)你有幫助'sender = settings.EMAIL_FROMrecipient_list = [email]html_message = '<h1>The End</h1>'send_mail(subject, message, sender, recipient_list, html_message=html_message)?
轉(zhuǎn)載于:https://www.cnblogs.com/Hannibal-2018/p/11147250.html
總結(jié)
以上是生活随笔為你收集整理的启动celery后执行任务报错:django.core.exceptions.ImproperlyConfigured的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “头号大厂铁粉”微软宣布关闭区块链服务
- 下一篇: 开发者供不应求,垃圾项目在去年已造成2.