在Celery中注册不同的任务

时间:2015-06-24 23:46:12

标签: python django celery

我用Celery创建了两种任务。一个是独立的Celery任务,可以根据数据库推送通知执行操作(程序监听数据库,一旦有消息启动任务)。另一个与django集成,接受一个url请求,用于触发任务。我跟着this example用Celery设置了django应用程序。对于独立的Celery任务,我在最tasks.py目录下(在示例中)django下定义了正常任务:

from celery import Celery
from demoapp.utils.read_images import download_images_mem

app = Celery('tasks', backend='redis://localhost', broker='amqp://guest@localhost//')

@app.task
def make_video(img_url_list, deviceid, utc, dst, cityname, streetname, CorF, lat, lon):
    download_images_mem(img_url_list, deviceid, utc, dst, cityname, streetname, CorF, lat, lon)

我的tasks.py目录下还有demoapp,以:

开头
@shared_task
def fired_by_url():
    func definitions

我使用rabbitmq作为代理,redis作为两个任务的后端。我的问题是如何将它们组合在一起?基本上我遵循django-celery教程和正常的芹菜教程,这就是为什么我有这样奇怪的目录布局和文件。但我想知道如何将它们组合在一起。我有类似的问题:我应该使用哪种芹菜实例? app = Celery('proj')settings.py中的app = Celery('tasks', backend='redis://localhost', broker='amqp://guest@localhost//')?我应该为两个任务使用哪个装饰器?我该如何组织文件?他们应该在同一台机器上运行。我对Celery真的很陌生,此时有点困惑。任何帮助将不胜感激。提前谢谢。

0 个答案:

没有答案