python - 使用本地计算机作为主机将 EC2 实例设置为 Celery Worker

标签 python amazon-ec2 multiprocessing celery

类似于我的问题here我正在尝试设置多个亚马逊 EC2 实例来进行一些多处理。我正在考虑使用 celery 来管理 worker 。有没有人使用本地计算机作为主机在 EC2 实例上使用 celery?

有没有人有任何好的建议、教程、意见等可能有帮助?我用 celery 在 django 中做了一些简单的异步过程,但没有达到这种规模(工作人员和主机在同一台机器上)。

而且大部分处理都是“基于文件的”(即读写文件)......你认为用 celery 腌制和传输文件的内容会更好吗(大多数文件是 1-2kb 的文本)或跨 EC2 实例镜像文件系统,然后让工作人员返回结果(通常是 0.5 kb 的文本)。

最佳答案

我使用 Amazon SQS 通过 Amazon EC2 进行任务管理。这是一个非常可扩展的解决方案。 Boto 是我发现的用于管理 Amazon 服务的最佳库。

要存储大量小文件,您可以使用 MongoDB GridFS,它可以让您存储数以千计的本地文件。我使用 MongoDB 并在此类任务中获得了完美的性能。唯一的问题 - 32 位架构上的 MongoDB 非常有限。 Amazon 有微型实例,其次是支持 64 位的大型实例。微型实例非常受 CPU 和内存的限制,如果它不适合您的需求,您需要设置大型实例,这可能会花费很多。

我的任务中的微型实例每天能够读取/写入多达 10 个演出,没有任何问题。

另请查看 Spot 实例。它的成本比按需低约 3 倍,您可能会发现它们非常适合后台处理。

关于python - 使用本地计算机作为主机将 EC2 实例设置为 Celery Worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6459459/

相关文章:

python - multiprocessing - 执行外部命令并在继续之前等待

python - 如何在 libcloud 中列出 ec2 west 中的节点

python - 为什么我的并行性能达到顶峰?

python - 在redis中存储带或不带散列的键值对

python - 将 R 安装的库用于其他程序?

amazon-web-services - 如何通过 Jenkins 以自动缩放模式将应用程序代码推送到 Amazon EC2 服务器?

amazon-web-services - 我应该将我的 Spring Boot REST API jar 文件放在我的 Ubuntu EC2 实例上的什么位置?

python - Pool.map 挂起——如何进行异常处理

python - python加载时间和运行时间的区别?

python - 将交错的 NumPy 整数数组转换为 complex64 的最快方法是什么?