This document describes the current stable version of Celery (5.6). For development docs, go here.

# `celery.worker.autoscale`

Pool Autoscaling.

This module implements the internal thread responsible for growing and shrinking the pool according to the current autoscale settings.

The autoscale thread is only enabled if the `celery worker --autoscale` option is used.

class celery.worker.autoscale.Autoscaler(pool, max_concurrency, min_concurrency=0, worker=None, keepalive=30.0, mutex=None)

  Background thread to autoscale pool workers.

  body()
  info()
  maybe_scale(req=None)
  property processes
  property qty
  scale_down(n)
  scale_up(n)
  update(max=None, min=None)

class celery.worker.autoscale.WorkerComponent(w, **kwargs)

  Bootstep that starts the autoscaler thread/timer in the worker.

  conditional = True
  create(w)

    Create the step.

  info(w)

    Return Autoscaler info.

  label = 'Autoscaler'
  name = 'celery.worker.autoscale.WorkerComponent'
  register_with_event_loop(w, hub)
  requires = (step:celery.worker.components.Pool{(step:celery.worker.components.Hub{(step:celery.worker.components.Timer{()},)},)},)