celery 基础教程(三):配置
前言
如果你使用默认的加载器,你必须创建 celeryconfig.py 模块并且保证它在python路径中。
一、加载配置方法
1.基础方法
可以设置一些选项来改变 Celery 的工作方式。这些选项可以直接在 app 实例上进行设置,或者也可以使用一个指定的配置模块
配置使用 app.conf 变量保存:
>>> app.conf.timezone
'Europe/London'
你可以直接设置配置值:
>>> app.conf.enable_utc = True
或者使用 update 方法同时更新多个配置项。
>>> app.conf.update(
... enable_utc=True,
... timezone='Europe/London',
...)
实际的配置对象由多个字典决定,配置项按以下顺序查询:
1. 运行时的配置修改
2. 配置模块(如果声明)
3. 默认配置(celery.app.defaults)
你还可以使用 app.add_defaults() 方法添加新的默认配置源。
2.config_from_object
app.config_from_object() 方法从一个配置对象加载配置。
它可以是一个配置模块,或者任意包含配置属性的对象。
注意任何前面设置的配置在调用 config_from_object 方法后都将被重置。如果你想设置附加的配置应该在调用这个方法之后。
示例1: 使用模块名app.config_from_object() 方法的参数可以是一个 python 模块的全限定名称,或者一个 python 属性名,例如:”celeryconfig”,”myproj.config.celery”,或者 “myproj.config:CeleryConfig”:
from celery import Celery app = Celery()
app.config_from_object('celeryconfig')
celeryconfig 模块内容如下形式:
celeryconfig.py:
enable_utc = True
timezone = 'Europe/London'
只要 import celeryconfig 能正常运行,应用实例就能加载它。
示例2:传递一个模块对象
你还可以传递一个已经加载的模块对象,但是不作为常规建议。
建议使用模块名的方式加载,因为这种情况下当prefork池使用时,配置模块不必序列化。如果遇到配置问题或者序列化错误,可以尝试使用模块名的方式加载配置。
import celeryconfig from celery import Celery app = Celery()
app.config_from_object(celeryconfig)
示例3:使用配置类/对象
from celery import Celery app = Celery() class Config:
enable_utc = True
timezone = 'Europe/London' app.config_from_object(Config)
# or using the fully qualified name of the object:
# app.config_from_object('module:Config')
二、配置文件示例
以下是配置示例,你可以从这个开始。它包括运行一个基本Celery应用的所有基础设置。
## Broker settings.
broker_url = 'amqp://guest:guest@localhost:5672//' # List of modules to import when the Celery worker starts.
imports = ('myapp.tasks',) ## Using the database to store task state and results.
result_backend = 'db+sqlite:///results.db' task_annotations = {'tasks.add': {'rate_limit': '10/s'}}
三、新的小写设置
与以前版本的不同,除了设置项名称变为小写字母外,还有一个前缀的重命名,例如 celerybeat_ 变为 beat_,celeryd_ 变为 worker,以及很多顶级 celery_ 设置重命名成了 task_ 前缀。
Celery 仍然能读取老的配置文件,所以并不仓促迁移到新的设置格式。
| Setting name | Replace with |
|---|---|
| CELERY_ACCEPT_CONTENT | accept_content |
| CELERY_ENABLE_UTC | enable_utc |
| CELERY_IMPORTS | imports |
| CELERY_INCLUDE | include |
| CELERY_TIMEZONE | timezone |
| CELERYBEAT_MAX_LOOP_INTERVAL | beat_max_loop_interval |
| CELERYBEAT_SCHEDULE | beat_schedule |
| CELERYBEAT_SCHEDULER | beat_scheduler |
| CELERYBEAT_SCHEDULE_FILENAME | beat_schedule_filename |
| CELERYBEAT_SYNC_EVERY | beat_sync_every |
| BROKER_URL | broker_url |
| BROKER_TRANSPORT | broker_transport |
| BROKER_TRANSPORT_OPTIONS | broker_transport_options |
| BROKER_CONNECTION_TIMEOUT | broker_connection_timeout |
| BROKER_CONNECTION_RETRY | broker_connection_retry |
| BROKER_CONNECTION_MAX_RETRIES | broker_connection_max_retries |
| BROKER_FAILOVER_STRATEGY | broker_failover_strategy |
| BROKER_HEARTBEAT | broker_heartbeat |
| BROKER_LOGIN_METHOD | broker_login_method |
| BROKER_POOL_LIMIT | broker_pool_limit |
| BROKER_USE_SSL | broker_use_ssl |
| CELERY_CACHE_BACKEND | cache_backend |
| CELERY_CACHE_BACKEND_OPTIONS | cache_backend_options |
| CASSANDRA_COLUMN_FAMILY | cassandra_table |
| CASSANDRA_ENTRY_TTL | cassandra_entry_ttl |
| CASSANDRA_KEYSPACE | cassandra_keyspace |
| CASSANDRA_PORT | cassandra_port |
| CASSANDRA_READ_CONSISTENCY | cassandra_read_consistency |
| CASSANDRA_SERVERS | cassandra_servers |
| CASSANDRA_WRITE_CONSISTENCY | cassandra_write_consistency |
| CELERY_COUCHBASE_BACKEND_SETTINGS | couchbase_backend_settings |
| CELERY_MONGODB_BACKEND_SETTINGS | mongodb_backend_settings |
| CELERY_EVENT_QUEUE_EXPIRES | event_queue_expires |
| CELERY_EVENT_QUEUE_TTL | event_queue_ttl |
| CELERY_EVENT_QUEUE_PREFIX | event_queue_prefix |
| CELERY_EVENT_SERIALIZER | event_serializer |
| CELERY_REDIS_DB | redis_db |
| CELERY_REDIS_HOST | redis_host |
| CELERY_REDIS_MAX_CONNECTIONS | redis_max_connections |
| CELERY_REDIS_PASSWORD | redis_password |
| CELERY_REDIS_PORT | redis_port |
| CELERY_RESULT_BACKEND | result_backend |
| CELERY_MAX_CACHED_RESULTS | result_cache_max |
| CELERY_MESSAGE_COMPRESSION | result_compression |
| CELERY_RESULT_EXCHANGE | result_exchange |
| CELERY_RESULT_EXCHANGE_TYPE | result_exchange_type |
| CELERY_TASK_RESULT_EXPIRES | result_expires |
| CELERY_RESULT_PERSISTENT | result_persistent |
| CELERY_RESULT_SERIALIZER | result_serializer |
| CELERY_RESULT_DBURI | Use result_backend instead. |
| CELERY_RESULT_ENGINE_OPTIONS | database_engine_options |
| […]_DB_SHORT_LIVED_SESSIONS | database_short_lived_sessions |
| CELERY_RESULT_DB_TABLE_NAMES | database_db_names |
| CELERY_SECURITY_CERTIFICATE | security_certificate |
| CELERY_SECURITY_CERT_STORE | security_cert_store |
| CELERY_SECURITY_KEY | security_key |
| CELERY_TASK_ACKS_LATE | task_acks_late |
| CELERY_TASK_ALWAYS_EAGER | task_always_eager |
| CELERY_TASK_ANNOTATIONS | task_annotations |
| CELERY_TASK_COMPRESSION | task_compression |
| CELERY_TASK_CREATE_MISSING_QUEUES | task_create_missing_queues |
| CELERY_TASK_DEFAULT_DELIVERY_MODE | task_default_delivery_mode |
| CELERY_TASK_DEFAULT_EXCHANGE | task_default_exchange |
| CELERY_TASK_DEFAULT_EXCHANGE_TYPE | task_default_exchange_type |
| CELERY_TASK_DEFAULT_QUEUE | task_default_queue |
| CELERY_TASK_DEFAULT_RATE_LIMIT | task_default_rate_limit |
| CELERY_TASK_DEFAULT_ROUTING_KEY | task_default_routing_key |
| CELERY_TASK_EAGER_PROPAGATES | task_eager_propagates |
| CELERY_TASK_IGNORE_RESULT | task_ignore_result |
| CELERY_TASK_PUBLISH_RETRY | task_publish_retry |
| CELERY_TASK_PUBLISH_RETRY_POLICY | task_publish_retry_policy |
| CELERY_TASK_QUEUES | task_queues |
| CELERY_TASK_ROUTES | task_routes |
| CELERY_TASK_SEND_SENT_EVENT | task_send_sent_event |
| CELERY_TASK_SERIALIZER | task_serializer |
| CELERYD_TASK_SOFT_TIME_LIMIT | task_soft_time_limit |
| CELERYD_TASK_TIME_LIMIT | task_time_limit |
| CELERY_TRACK_STARTED | task_track_started |
| CELERYD_AGENT | worker_agent |
| CELERYD_AUTOSCALER | worker_autoscaler |
| CELERYD_CONCURRENCY | worker_concurrency |
| CELERYD_CONSUMER | worker_consumer |
| CELERY_WORKER_DIRECT | worker_direct |
| CELERY_DISABLE_RATE_LIMITS | worker_disable_rate_limits |
| CELERY_ENABLE_REMOTE_CONTROL | worker_enable_remote_control |
| CELERYD_HIJACK_ROOT_LOGGER | worker_hijack_root_logger |
| CELERYD_LOG_COLOR | worker_log_color |
| CELERYD_LOG_FORMAT | worker_log_format |
| CELERYD_WORKER_LOST_WAIT | worker_lost_wait |
| CELERYD_MAX_TASKS_PER_CHILD | worker_max_tasks_per_child |
| CELERYD_POOL | worker_pool |
| CELERYD_POOL_PUTLOCKS | worker_pool_putlocks |
| CELERYD_POOL_RESTARTS | worker_pool_restarts |
| CELERYD_PREFETCH_MULTIPLIER | worker_prefetch_multiplier |
| CELERYD_REDIRECT_STDOUTS | worker_redirect_stdouts |
| CELERYD_REDIRECT_STDOUTS_LEVEL | worker_redirect_stdouts_level |
| CELERYD_SEND_EVENTS | worker_send_task_events |
| CELERYD_STATE_DB | worker_state_db |
| CELERYD_TASK_LOG_FORMAT | worker_task_log_format |
| CELERYD_TIMER | worker_timer |
| CELERYD_TIMER_PRECISION | worker_timer_precision |
celery 基础教程(三):配置的更多相关文章
- Git系列教程三 配置与基本命令
一.安装Git 网上有很多安装教程,可以参考.这里使用的是Windows版本的Git,点击这里下载. 二.基本设置 安装完成后,通过点击鼠标右键就可以看到新添加了俩个Git命令:Git GUI Her ...
- celery 基础教程(四):定时任务
简介 celery beat 是一个调度器:它以常规的时间间隔开启任务,任务将会在集群中的可用节点上运行. 默认情况下,入口项是从 beat_schedule 设置中获取,但是自定义的存储也可以使用, ...
- SpringCloud2.0 Eureka Client 服务注册 基础教程(三)
1.创建[服务提供者],即 Eureka Client 1.1.新建 Spring Boot 工程,工程名称:springcloud-eureka-client 1.2.工程 pom.xml 文件添加 ...
- celery 基础教程(二):简单实例
前言 使用celery包含三个方面:1. 定义任务函数.2. 运行celery服务.3. 客户应用程序的调用. 实例一: #1. 定义任务函数 创建一个文件 tasks.py输入下列代码: from ...
- celery 基础教程(一):工作流程,架构以及概念
1.工作流程 celery通过消息进行通信,通常使用一个叫Broker(中间人)来协client(任务的发出者)和worker(任务的处理者). clients发出消息到队列中,broker将队列中的 ...
- Spring Boot 2.x基础教程:配置元数据的应用
在使用Spring Boot开发应用的时候,你是否有发现这样的情况:自定义属性是有高量背景的,鼠标放上去,有一个Cannot resolve configuration property的配置警告. ...
- git基础教程(三)
3.github与git同步 3.1 配置公私钥 3.2 github上建立个人仓库 3.3 本地仓库同步到github #将本地仓库与远端仓库建立连接 #用简写名代替后面的远端连接 git remo ...
- celery 基础教程(五):守护进程
一 守护进程方式启动 https://blog.csdn.net/p571912102/article/details/82735052 文件目录如下 . ├── config.py ├── main ...
- mysql基础教程(三)-----增删改、子查询、创建管理表、约束和分页
插入 INSERT语句语法 从其它表中拷贝数据 • 不必书写 VALUES 子句. • 子查询中的值列表应与 INSERT 子句中的列名对应 update语句 • 可以一次更新多条数据. • 如果需要 ...
随机推荐
- laravel clone后需要做的操作
首先 安装依赖关系 composer install 第二步 复制配置文件 cp .env.example .env 第三步 创建新的应用程序密钥 php artisan key:generate 第 ...
- PuTTY通过SSH连接上Ubuntu20.04
在PuTTY中连接到Ubuntu20.04大致需要几个步骤(不一定对应文本中的序号):1) 安装opensh-server (Ubuntu安装好之后 ,一般openssh-client自动已经安装好) ...
- Eclipse设置断点无效、无法拦截请求进行Debug调试
场景: 在Eclipse中添加Debug断点,从后台页面中点击修改按钮提交数据,发现打断点的地方并没有拦截到请求,接下来对此情况的进行分析. 分析: * 如果页面是根据业务需求复制别的相似html页面 ...
- ORA-12514:监听程序无法识别
使用plsql远程登录oracle数据库时,出现无法识别监听程序的错误.很大机率是配置文件出错. 配置文件如下: listener.ora是服务器端用的,oracle监听程序,就是读的这个文件,里面有 ...
- Beta冲刺--冲刺总结
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 Beta冲刺--冲刺总结 作业正文 如下 其他参考文献 ... Beta冲刺 ...
- Redis - (Linux)安装与配置
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: 1:Redis支持数据的持久化,可以将内存 ...
- redis过期键的策略
一.过期时间设置: 127.0.0.1:6379> expire key seconds //设置键的过期时间为多少秒 127.0.0.1:6379> setex key seconds ...
- 甜咸粽子党大战,Python爬取淘宝上的粽子数据并进行分析
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 爬虫 爬取淘宝数据,本次采用的方法是:Selenium控制Chrome浏览 ...
- Jmeter系列(27)- 详解正则提取器
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 有了 JSON 提取器为啥还要用正则提 ...
- JavaWeb网上图书商城完整项目-数据库操作工具类2-MapHandle的高级用法
1.现在在上面一章的基础上,我们引入一个address表,该表记录person类的地址,address表的格式如下所示 现在person类要和address表想关联,得到当前联系人的住宅地址,我们应该 ...