Skip to content

FluxbaseJobs

Jobs client for submitting and monitoring background jobs

For admin operations (create job functions, manage workers, view all jobs), use client.admin.jobs

new FluxbaseJobs(fetch): FluxbaseJobs

ParameterType
fetchFluxbaseFetch

FluxbaseJobs

cancel(jobId): Promise<object>

Cancel a pending or running job

ParameterTypeDescription
jobIdstringJob ID to cancel

Promise<object>

Promise resolving to { data, error } tuple

NameType
datanull
errornull | Error
const { error } = await client.jobs.cancel('550e8400-e29b-41d4-a716-446655440000')
if (!error) {
console.log('Job cancelled successfully')
}

get(jobId): Promise<object>

Get status and details of a specific job

ParameterTypeDescription
jobIdstringJob ID

Promise<object>

Promise resolving to { data, error } tuple with job details

NameType
datanull | Job
errornull | Error
const { data: job, error } = await client.jobs.get('550e8400-e29b-41d4-a716-446655440000')
if (job) {
console.log('Status:', job.status)
console.log('Progress:', job.progress_percent + '%')
console.log('Result:', job.result)
console.log('Logs:', job.logs)
}

list(filters?): Promise<object>

List jobs submitted by the current user

ParameterTypeDescription
filters?objectOptional filters (status, namespace, limit, offset)
filters.includeResult?boolean-
filters.limit?number-
filters.namespace?string-
filters.offset?number-
filters.status?string-

Promise<object>

Promise resolving to { data, error } tuple with array of jobs

NameType
datanull | Job[]
errornull | Error
// List all your jobs
const { data: jobs, error } = await client.jobs.list()
// Filter by status
const { data: running } = await client.jobs.list({
status: 'running'
})
// Paginate
const { data: page } = await client.jobs.list({
limit: 20,
offset: 40
})

retry(jobId): Promise<object>

Retry a failed job

Creates a new job execution with the same parameters

ParameterTypeDescription
jobIdstringJob ID to retry

Promise<object>

Promise resolving to { data, error } tuple with new job

NameType
datanull | Job
errornull | Error
const { data: newJob, error } = await client.jobs.retry('550e8400-e29b-41d4-a716-446655440000')
if (newJob) {
console.log('Job retried, new ID:', newJob.id)
}

submit(jobName, payload?, options?): Promise<object>

Submit a new job for execution

ParameterTypeDescription
jobNamestringName of the job function to execute
payload?anyJob input data
options?objectAdditional options (priority, namespace, scheduled time)
options.namespace?string-
options.priority?number-
options.scheduled?string-

Promise<object>

Promise resolving to { data, error } tuple with submitted job details

NameType
datanull | Job
errornull | Error
// Submit a simple job
const { data, error } = await client.jobs.submit('send-email', {
to: 'user@example.com',
subject: 'Hello',
body: 'Welcome!'
})
if (data) {
console.log('Job submitted:', data.id)
console.log('Status:', data.status)
}
// Submit with priority
const { data } = await client.jobs.submit('high-priority-task', payload, {
priority: 10
})
// Schedule for later
const { data } = await client.jobs.submit('scheduled-task', payload, {
scheduled: '2025-01-01T00:00:00Z'
})