【发布时间】:2013-02-13 19:35:55
【问题描述】:
我想将图像上传到 S3 服务器,但在上传之前我想生成 3 种不同大小的缩略图,并且我希望它在请求/响应周期之外完成,因此我使用的是 celery。我已经阅读了文档,这是我所理解的。如果我错了,请纠正我。
- Celery 可帮助您在请求响应周期之外管理任务队列。
- 还有一种叫做胡萝卜/kombu 的东西——它是一个 django 中间件,用于打包通过 celery 创建的任务。
- 然后是第三层 PyAMQP,它有助于胡萝卜与代理的通信。例如。 RabbitMQ、AmazonSQS、ironMQ 等
- Broker 位于不同的服务器上,为您处理事务。
现在我的理解是 - 如果多个用户同时上传图片,celery 会将调整大小排队,而调整大小实际上会发生在 ironMQ 服务器上,因为它在 heroku 上提供了一个很酷的插件。
现在的疑惑:
但是图片大小调整后,ironMQ会推送到S3服务器,还是完成后通知..我不清楚。
芹菜和昆布/胡萝卜有什么区别,你能不能形象地解释一下。
【问题讨论】:
-
Kombu 是队列连接器。 Celery 构建在 kombu 之上。它独立于 Django。 Kombu 很久以前就取代了胡萝卜。
-
Celery 管理任务;既可以调度它们,也可以根据消息传递实际执行任务。
标签: python heroku rabbitmq celery kombu