繁体   English   中英

python Django Celery项目结构

[英]python Django Celery project structure

我正在测试celery以用作多处理集群应用程序,但是我正在寻找一些提示以及这是否是正确的方法...

我在用

Centos 6.4上的python 2.6.6 celery-3.1.7 Django14-1.4.8-1.el6.noarch

我已经设置了两个芹菜项目。 非django和django ...

非Django项目目录

/usr/local/proj
├── celery.py
├── celery.pyc
├── __init__.py
├── __init__.pyc
├── tasks.py
└── tasks.pyc

Django项目目录

/usr/local/proj.django/
├── demoapp
│   ├── __init__.py
│   ├── models.py
│   ├── tasks.py
│   ├── tests.py
│   └── views.py
├── django.wsgi
├── manage.py
└── proj
    ├── celery.py
    ├── __init__.py
    ├── __init__.pyc
    ├── settings.py
    ├── settings.pyc
    ├── urls.py
    ├── urls.pyc
    ├── wsgi.py
    └── wsgi.pyc

non-django项目已作为NFS挂载在celery服务器上,我能够从task.py提交任务,并且我可以检查celery Flower上的状态。

但是,我很困惑如何通过celery django项目来使用它。

问题:

  • 我是否需要通过NFS与所有celery节点共享/usr/local/proj.django/proj?
  • Django项目是否有可能将non-django celery项目用于所有芹菜任务。

我在这里听起来像是愚蠢的,所以表示歉意。

任何意见,将不胜感激...

完全没有必要安装任何东西,您应该能够运行celery worker分别收听队列。

如果您的任务必须按照我的理解使用django代码,请考虑在所有celery节点中复制代码,例如,所有节点都应从同一git存储库中提取,最好甚至使用诸如fabric之类的工具

要注意的一件事是启用从所有节点到您的数据库(即mysql)的远程访问

编辑:“不需要挂载”我的意思是在所有节点上都安装了所有需要的工具,即pip install django celery ...并且还从中央存储库(即git)中提取了您的代码,这取决于您的托管,甚至复制机器本身,让所有相同的机器都监听中央队列

EDIT2:

我是否需要通过NFS与所有celery节点共享/usr/local/proj.django/proj?

我想它可以工作,尽管更好的做法是从中央仓库中撤出,请参见上文

Django项目是否有可能将non-django celery项目用于所有芹菜任务。

问题是您在哪里运行芹菜工人,并使用哪些参数? 参见芹菜工人指南

作为旁注,请考虑安装/启用rabbitmq管理插件以查看发生了什么事情

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM