5

我到底做错了什么?

我最近发现了一个很棒的 django 模板,叫做django-skel。我用它开始了一个项目,因为它使得在 django 中使用 heroku 变得非常容易。一切都很顺利,直到我试图让芹菜工作。无论我尝试什么,我都无法让我的任务运行。所以我开始了一个新的简单的应用程序,只是想看看我是否可以让它在没有任何其他疯狂阻止事情的情况下运行。

这是我的准系统应用程序。我在heroku上启动并运行了这个。Django 管理员正在工作,我已经同步并迁移了我的数据库。我正在为我的 RabbitMQ 使用 CloudAMQP Little Lemur。我看到请求在 RabbitMQ 接口中排队,没有任何反应。我如何将任务排队是在 shell 中手动运行的:

from herokutest.apps.otgcelery.tasks import add
result = add.delay(2,2)

我确保我已经运行了所有 3 台测功机,但仍然一无所获。

我也让它在本地工作。

我确信有很多问题,我愿意提出。请问一下。

4

1 回答 1

2

谢谢大家的帮助。有几件事我最终做错了。首先是我错误地导入了任务。我所要做的就是:

from apps.otgcelery.tasks import add
result = add.delay(2,2)

Celery 对导入任务的方式非常挑剔。第二个问题是 CloudAMQP 免费插件不能与 django-skel 一起使用。它们将您的连接数限制为三个,并且每个线程如何启动它以非常快的速度使用这些连接,而您的任务刚刚开始无法连接。所以我用几种不同的方式解决了这个问题。我尝试了另一个 BigWigs RabbitMQ,效果很好。但是,由于它们仍处于 Beta 阶段,我决定尝试 Redis。这也很有效,而且我的任务正在尽可能快地启动。

再次感谢大家的帮助。

于 2013-04-23T11:04:13.813 回答