Faktory Push

Faktory Push

Certified

Enqueue a job to a Faktory server

Submits (pushes) a background job to a Faktory server over the Faktory Work Protocol (FWP), a line-based TCP protocol - not HTTP. Faktory is most commonly paired with Sidekiq / Ruby on Rails workers, so this task lets Kestra hand work off to existing workers without touching them.

yaml
type: io.kestra.plugin.faktory.Push

Enqueue a job for a Faktory/Sidekiq worker.

yaml
id: faktory_push
namespace: company.team

inputs:
  - id: email
    type: STRING

tasks:
  - id: enqueue_welcome_email
    type: io.kestra.plugin.faktory.Push
    host: "{{ secret('FAKTORY_HOST') }}"
    password: "{{ secret('FAKTORY_PASSWORD') }}"
    jobType: SendWelcomeEmail
    queue: mailers
    args:
      - "{{ inputs.email }}"

Schedule a job for later and log the returned job id.

yaml
id: faktory_scheduled_push
namespace: company.team

tasks:
  - id: schedule_report
    type: io.kestra.plugin.faktory.Push
    host: "{{ secret('FAKTORY_HOST') }}"
    password: "{{ secret('FAKTORY_PASSWORD') }}"
    jobType: GenerateNightlyReport
    args:
      - "2026-07-10"
    at: "{{ now() | dateAdd(1, 'DAYS') }}"
    retries: 5
    custom:
      source: kestra

  - id: log_jid
    type: io.kestra.plugin.core.log.Log
    message: "Enqueued Faktory job {{ outputs.schedule_report.jid }}"
Properties

Job type

The Faktory jobtype identifying which worker handles this job.

Job arguments

JSON-native arguments passed to the worker (strings, numbers, booleans, objects, arrays). Defaults to an empty list.

Schedule for later

If set, the job is not eligible for pickup by a worker until this instant; Faktory holds the job until then.

Custom metadata

Arbitrary metadata attached to the job payload's custom field, made available to the worker at fetch time.

Defaultlocalhost

Faktory server host

Hostname or IP address of the Faktory server. Defaults to localhost.

Job id

A custom identifier for the enqueued job (Faktory jid), must be unique. If not set, a random UUID is generated and returned as the jid output.

Faktory password

Password used to authenticate with a password-protected Faktory server. Leave empty to connect without credentials.

Reference (ref) of the pluginDefaults to apply to this task.

Default7419

Faktory server port

TCP port the Faktory server listens on, between 1 and 65535. Defaults to 7419.

Defaultdefault

Queue

The Faktory queue the job is pushed to. Defaults to default.

DefaultPT30M

Reservation timeout

How long a worker may hold this job before Faktory considers it timed out and reschedules it. Must be at least PT60S (60 seconds). Defaults to PT30M (30 minutes).

Default25

Retry count

Number of times Faktory retries this job before moving it to the dead queue, between -1 and 1000. A negative value discards the job immediately on failure instead of retrying it or moving it to the dead queue. Defaults to 25.

Defaultfalse

Use TLS

Whether to establish the connection over TLS (tcp+tls://). Defaults to false.

Job id

The Faktory job id (jid) of the enqueued job - either the provided jobId or an auto-generated UUID.