Beanstalkd Latest

Scale applications based on beanstalkd queues

Availability: v2.16+ Maintainer: Community

Suggest a change

Trigger Specification

This specification describes the beanstalkd trigger that scales based on the number of jobs in a Beanstalkd queue.

triggers:
  - type: beanstalkd
    metadata:
      server: beanstalkd.internal-namespace:11300
      includeDelayed: "false"
      tube: "default"
      activationValue: "10"
      value: "15"
      timeout: "30"

Parameter list:

  • server - Address of beanstalkd server <host>:<port>. If no port is specified then the scaler will default to 11300.
  • includeDelayed - Whether to include delayed jobs in the count used for scaling. Defaults to false so only ready and reserved jobs are counted.
  • tube - Name of the tube to scale on.
  • activationValue - Target value for activating the scaler. Learn more about activation here. (Default: 0, Optional, This value can be a float)
  • value - Number of jobs in the queue to trigger on. Defaults to ready+reserved jobs if includeDelayed isn’t set.
  • timeout - Timeout in seconds for establishing a connection to the beanstalkd server. (Default: 30, Optional)

Authentication Parameters

No authentication should be needed to connect to the beanstalkd server.

Example

Default tube with activation value

Here the scaler will not be active until there are at least 10 jobs in the tube. Delayed jobs are not included as includeDelayed will be set to a default of false.

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: beanstalkd-scaledobject
spec:
  scaleTargetRef:
    name: beanstalkd-consumer
  maxReplicaCount: 20
  triggers:
    - type: beanstalkd
      metadata:
        server: beanstalkd.internal-namespace:11300
        tube: 'default'
        activationValue: "10"
        value: "20"

User-created tube with minimum replicas

A minimum number of replicas is specified here so the scaler will always be active. This means scaling will occur as soon as the job count goes above 5. Delayed jobs are included here.

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: beanstalkd-scaledobject
spec:
  scaleTargetRef:
    name: beanstalkd-consumer
  minReplicaCount: 1
  maxReplicaCount: 20
  triggers:
    - type: beanstalkd
      metadata:
        server: beanstalkd.internal-namespace:11300
        tube: 'scaling-tube'
        value: "5"
        includeDelayed: "true"