使用Celery和Pylons

时间:2011-04-30 01:56:34

标签: pylons celery

我正在尝试设置芹菜和挂架,似乎无法使其正常工作。我下载了pylons-celery,但是如何将我的Pylons环境指向celeryconfig.py所在的位置?我将配置文件放在我的pylons-app \ celery文件夹中。我读了post,但没有提到如何将芹菜与铁塔配对..任何指针都很受欢迎 - 谢谢!

2 个答案:

答案 0 :(得分:3)

与pylons的最紧密集成是将自定义加载器构建为粘贴命令。这就是芹菜 - 挂架的作用。查看我的celery-pylons分叉,它应该与最新的芹菜和pylons 1.0一起使用。

要让celeryd方面正常工作,您需要在ini文件中添加正确的选项,然后调用paster celeryd development.ini

对于webapp方面,您只需要在environment.py中导入celerypylons然后您就可以从项目的任何位置导入和使用您的任务。

答案 1 :(得分:0)

我不确定你想要达到的目标,但我会解释我是如何设置Pylons与芹菜一起工作的,希望你能从中获得一些东西。

我的设置相当简单。我使用名为jobs的单个控制器为Pylons实现了一个REST API。收到POST请求后,控制器操作将向celery提交新任务,捕获新任务的uuid,并使用uuid响应原始请求。我最初将celeryconfig.py文件放在我的控制器目录中,但是一旦我将pylons app egg部署到apache web服务器,就不再自动找到celeryconfig.py了。

为了解决这个问题,我创建了一个与模型和控制器目录处于同一级别的celery目录,然后将celeryconfig.py文件与空 init .py放在一起。

以下是来自作业控制器的代码片段,我连接到芹菜并提交新任务。

    from celery import Celery
    from my_pylons_app.celery import celeryconfig
    celery_app = Celery()
    celery_app.config_from_object(celeryconfig)
    result = celery_app.send_task("process_job", [job_guid], connect_timeout=10)

我能够使用我的内部粘贴Web服务器和我的公共活动apache2 Web服务器。