celery config 所有的属性

Celery 是一个异步任务队列/作业队列,基于分布式消息传递。它主要用于处理后台任务,以减轻主应用服务器的负载,并通过消息传递进行任务分发。Celery 的配置可以通过多种方式完成,包括在代码中直接设置、通过配置文件(如 .ini.yaml 文件)或环境变量。

Celery 的配置属性非常多,涵盖了从任务执行、消息代理(如 RabbitMQ、Redis)的连接设置到日志记录、任务序列化等多个方面。由于完整列出所有配置属性会相当冗长,我将列出一些最常用的和重要的配置属性类别及示例。

通用配置

  • BROKER_URLbroker_url(推荐使用后者,因为前者是旧版本用法):消息代理的 URL。例如,对于 RabbitMQ,它可能是 "amqp://guest:guest@localhost//";对于 Redis,它可能是 "redis://localhost:6379/0"
  • CELERY_RESULT_BACKENDresult_backend:用于存储任务结果的后端。它可以是与消息代理相同的系统,也可以是独立的系统(如 Redis、数据库)。
  • CELERY_TIMEZONEtimezone:Celery 使用的时间区。默认是 UTC。
  • CELERY_ENABLE_UTCenable_utc:是否启用 UTC 时间。默认为 True。

任务配置

  • CELERY_TASK_SERIALIZERtask_serializer:任务消息序列化的方式。默认是 'json'
  • CELERY_RESULT_SERIALIZERresult_serializer:任务结果序列化的方式。默认是 'json'
  • CELERY_ACCEPT_CONTENTaccept_content:Celery 接受的序列化内容类型列表。
  • CELERY_TASK_IGNORE_RESULTtask_ignore_result:是否忽略任务结果。对于不需要结果的任务,设置为 True 可以减少存储空间的使用。

并发和工作进程

  • CELERYD_CONCURRENCYworker_concurrency:每个 worker 并发执行的进程数或线程数(取决于使用的执行池)。
  • CELERYD_PREFETCH_MULTIPLIERprefetch_multiplier:每个 worker 预先获取的任务数(乘以 worker_concurrency)。
  • CELERYD_MAX_TASKS_PER_CHILDmax_tasks_per_child:worker 进程在执行指定数量的任务后退出,并被新进程替换。这有助于避免内存泄漏。

日志配置

  • CELERYD_LOG_FILEworker_log_file:worker 的日志文件路径。
  • CELERYD_LOG_LEVELworker_log_level:worker 的日志级别(如 DEBUG, INFO, WARNING, ERROR, CRITICAL)。
  • CELERYD_LOG_FORMATworker_log_format:worker 日志的格式字符串。

定时任务(Celery Beat)

  • CELERY_BEAT_SCHEDULEbeat_schedule:一个字典,定义了定时任务的执行计划。

请注意,上述属性中的 CELERY_ 前缀是旧版本的用法,新版本(如 Celery 4.x 和 5.x)推荐使用不带前缀的属性名(如 broker_url 而不是 CELERY_BROKER_URL)。

由于 Celery 的配置选项非常丰富,建议查阅最新的官方文档以获取完整的配置选项列表和详细说明。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值