【问题标题】:Celery, RabbitMQ and Django on Heroku: Reaching Memory LimitHeroku 上的 Celery、RabbitMQ 和 Django:达到内存限制
【发布时间】:2020-05-11 20:24:24
【问题描述】:

在 Django 应用程序中使用 RabbitMQ 运行 Celery 任务时,我的 Heroku Dyno(爱好)目前已达到 RAM 内存限制。

我对 Celery 设置有一点点玩弄,但我一直在达到内存限制,而且我缺少有关内存优化的技术知识。我想知道我当前的设置是否可以做些什么来防止达到限制,或者是这里升级 Heroku Dyno 的唯一解决方案?

BROKER_URL = 'amqp://url'
BROKER_POOL_LIMIT = 5
CELERY_RESULT_BACKEND = None
CELERY_MAX_TASKS_PER_CHILD = 10
CELERY_MAX_MEMORY_PER_CHILD = 80000
Procfile:web: gunicorn app_name.wsgi worker: celery -A app_name worker -l info --without-heartbeat
Task.py file:@shared_task(acks_late=True, ignore_result=True)
def function_name(args):

【问题讨论】:

    标签: django heroku rabbitmq celery


    【解决方案1】:

    我遇到了同样的问题,将最大并发设置为 2 或 3 解决了这个问题。

    在您的 procfile 中,在 worker 定义中添加 -c 2-c 3

    默认情况下,Celery 会将并发设置为可用的 CPU 数量。并发定义了将产生的芹菜工人的数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-08
      • 2017-10-24
      • 2011-07-24
      • 2011-07-18
      • 2011-07-17
      • 2017-01-11
      • 1970-01-01
      • 2017-05-15
      相关资源
      最近更新 更多