【问题标题】:Django and Celery ConfusionDjango 和 Celery 的混淆
【发布时间】:2012-11-09 06:38:04
【问题描述】:

在阅读了很多博文之后,我决定从 crontab 切换到 Celery 来完成我的中型 Django 项目。我有一些不明白的地方:

1- 我打算启动一个专用于 RabbitMQ 的微型 EC2 实例,这对于中小型繁重任务是否足够? (例如向 Amazon SES 发送定期电子邮件)。

2-任务的计算,任务的计算是发生在Django服务器还是rabbitMQ服务器上(假设rabbitMQ在单独的服务器上)?

3- 当我需要扩展我的系统并在负载均衡器后面有 2 个或更多应用程序服务器时,这两台 celery 机器是否需要连接到同一个 rabbitMQ vhost?假设应用程序服务器是副本,任务相同,并且一切都在数据库级别同步。

【问题讨论】:

    标签: django celery django-celery


    【解决方案1】:
    1. 我不知道这个问题的答案,但是您绝对可以将其配置为合适的(例如,将-c1 用于单个进程工作人员以避免使用太多内存或 eventlet/gevent 池),另请参阅--autoscale 选项。代理传输的选择在这里也很重要,不轮询的那些 CPU 效率更高(rabbitmq/redis/beanstalk)。

    2. 计算发生在工作器上,代理只负责接受、路由和传递消息(并在必要时将消息持久化到磁盘)。

    3. 要添加额外的工作人员,这些工作人员确实应该连接到同一个虚拟主机。你会 如果您希望应用程序具有单独的消息总线,请仅使用单独的虚拟主机。

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 2013-05-05
      • 2021-03-22
      • 2021-09-18
      相关资源
      最近更新 更多