
Faktory Push
CertifiedEnqueue a job to a Faktory server
Faktory Push
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.
type: io.kestra.plugin.faktory.PushExamples
Enqueue a job for a Faktory/Sidekiq worker.
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.
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
jobType *Requiredstring
Job type
The Faktory jobtype identifying which worker handles this job.
args array
Job arguments
JSON-native arguments passed to the worker (strings, numbers, booleans, objects, arrays). Defaults to an empty list.
at string
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 object
Custom metadata
Arbitrary metadata attached to the job payload's custom field, made available to the worker at fetch time.
host string
localhostFaktory server host
Hostname or IP address of the Faktory server. Defaults to localhost.
jobId string
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.
password string
Faktory password
Password used to authenticate with a password-protected Faktory server. Leave empty to connect without credentials.
pluginDefaultsRef Non-dynamicstring
Reference (ref) of the pluginDefaults to apply to this task.
port integerstring
7419Faktory server port
TCP port the Faktory server listens on, between 1 and 65535. Defaults to 7419.
queue string
defaultQueue
The Faktory queue the job is pushed to. Defaults to default.
reserveFor string
PT30MReservation 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).
retries integerstring
25Retry 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.
tls booleanstring
falseUse TLS
Whether to establish the connection over TLS (tcp+tls://). Defaults to false.
Outputs
jid string
Job id
The Faktory job id (jid) of the enqueued job - either the provided jobId or an auto-generated UUID.