Files
sixGuoDjango/django_celery/config.py
T
2026-08-02 14:07:04 +08:00

39 lines
2.8 KiB
Python

"""配置文件"""
# broker_url = "redis://default:com792282@127.0.0.1:6379/5"
# result_backend = "redis://:com792282@127.0.0.1:6379/6"
# result_backend = "django-db" # 任务结果存储数据库:这里默认是存储到数据库中
CELERY_BROKER_CONNECTION_RETRY_ON_STARTUP = True
# 用于设置单个任务的最大允许执行时间(单位通常是秒)。当 Celery Worker 执行的任务耗时超过这个设定值时,Celery将会强制终止该任务的执行。这个机制可以防止某个任务无限期地运行下去,从而可能导致Worker阻塞无法处理新的任务。
CELERY_TASK_TIME_LIMIT = 30 * 60
timezone = "Asia/Shanghai" # 时区:与 django 使用相同的时区;
# 这个配置项设置了Celery在发布任务和存储任务结果时使用的序列化器。当Celery Worker从Broker接收任务并将任务结果返回到Broker时,都会用到这个序列化器。在您给出的配置中,CELERY_TASK_SERIALIZER = "json" 表明任务将以JSON格式进行序列化。JSON是一种轻量级的数据交换格式,易于阅读和编写,同时也便于不同语言之间的解析。
task_serializer = "json"
# 此配置项定义了Celery Worker所接受的任务消息内容类型(MIME类型)。换句话说,只有在这个列表中的内容类型的任务消息,Celery Worker才会接受并尝试去执行。在您给出的配置中,CELERY_ACCEPT_CONTENT = ['json']
# 表示Worker仅接受以JSON格式序列化的任务消息。这与CELERY_TASK_SERIALIZER配置相呼应,确保系统内部的一致性,即发布的任务消息和接收的任务消息都采用相同的序列化格式。
accept_content = [ "json" ]
# CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler"
# 下面的语法是实现 定时作务的; USE_TZ
# DJANGO_CELERY_BEAT_TZ_AWARE = False # 一定要配置,否则会报mysql不支持的时间设置
# CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler" # 默认配置
# CELERY_BEAT_SCHEDULE = {
# "add_demo_event_one_hours": {
# "task": "django_celery.scheduledUpdatestoken.tasks.updateToken",
# "schedule": timedelta( seconds=60 )
# },
#
# }
"""
django_celery_beat.models.ClockedSchedule # 此模型存放已经关闭的任务
django_celery_beat.models.CrontabSchedule # cron的时间表
django_celery_beat.models.IntervalSchedule # 以特定间隔(例如,每5秒)运行的计划。以特定时间间隔(例如每 5 秒)运行的计划。
django_celery_beat.models.PeriodicTask # 此模型定义要运行的单个周期性任务。
django_celery_beat.models.PeriodicTasks # 此模型仅用作索引以跟踪计划何时更改
django_celery_beat.models.SolarSchedule # 定制任务
from django_celery_beat.models import PeriodicTask, CrontabSchedule 包含 cron 中的条目等字段的计划:分钟、小时、星期几、day_of_month month_of_year。
import json
"""