http://blog.csdn.net/samed/article/details/50598371
随时撸一撸,要点记心间。。
1. 下面讲解一下celery.py文件的配置内容,为何要这么配置。
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_celery.settings') |
设置这个环境变量是为了让 celery 命令能找到 Django 项目。这条语句必须出现在 Celery 实例创建之前。
app = Celery('django_celery') |
这个 app 就是 Celery 实例。可以有很多 Celery 实例,但是当使用 Django 时,似乎没有必要。
app.config_from_object('django.conf:settings') |
可以将 settings 对象作为参数传入,但是更好的方式是使用字符串,因为当使用 Windows 系统或者 execv 时 celery worker 不需要序列化 settings 对象。
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) |
为了重用 Django APP,通常是在单独的 tasks.py 模块中定义所有任务。Celery 会自动发现这些模块,加上这一句后,Celery 会自动发现 Django APP 中定义的任务,前提是遵循如下 tasks.py 约定:
- app1/
- tasks.py
- models.py
- app2/
- tasks.py
- models.py
2. 关于broker:
这个是个什么东西,我还是不太理解,按照seeting的配置来说,我理解就是承载的站点。
BROKER_URL = 'django://localhost:8000//' |
这里要注意我是使用了django自带的broker来作为celery broker,传说可以选的broker有:
RabbitMQ
Redis
database
更多的内容可以参看参考文献2。
时间: 2024-10-24 20:25:01