# @Author : Rocky # @File : celery.py # @Time : 2024/3/12 14:13 # @Author : Rocky # @File : celery.py # @Time : 2024/3/12 11:52 import os from django.utils import timezone from celery import Celery # 从环境变量中获取Django环境, # win:set DJANGO_ENV=local # linux: export DJANGO_ENV=local,或vim ~/.bashrc设置环境变量 django_env = os.environ.get('DJANGO_ENV') if django_env == 'local': os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'Ansjer.local_config.local_settings') elif django_env == 'test': os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'Ansjer.cn_config.test_settings') elif django_env == 'cn': os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'Ansjer.cn_config.formal_settings') elif django_env == 'us': os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'Ansjer.us_config.formal_settings') elif django_env == 'eu': os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'Ansjer.eur_config.formal_settings') app = Celery('apps') # 使用Django的settings文件配置Celery app.config_from_object('django.conf:settings', namespace='CELERY') # 自动从django注册的app中发现所有任务 app.autodiscover_tasks() # 解决时区问题,定时任务启动就循环输出 app.now = timezone.now