FluxbaseJobs
Jobs client for submitting and monitoring background jobs
For admin operations (create job functions, manage workers, view all jobs), use client.admin.jobs
Constructors
Section titled “Constructors”new FluxbaseJobs()
Section titled “new FluxbaseJobs()”new FluxbaseJobs(
fetch):FluxbaseJobs
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
fetch | FluxbaseFetch |
Returns
Section titled “Returns”Methods
Section titled “Methods”cancel()
Section titled “cancel()”cancel(
jobId):Promise<object>
Cancel a pending or running job
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
jobId | string | Job ID to cancel |
Returns
Section titled “Returns”Promise<object>
Promise resolving to { data, error } tuple
| Name | Type |
|---|---|
data | null |
error | null | Error |
Example
Section titled “Example”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
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
jobId | string | Job ID |
Returns
Section titled “Returns”Promise<object>
Promise resolving to { data, error } tuple with job details
| Name | Type |
|---|---|
data | null | Job |
error | null | Error |
Example
Section titled “Example”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)}getLogs()
Section titled “getLogs()”getLogs(
jobId,afterLine?):Promise<object>
Get execution logs for a job
Returns logs for the specified job. Only returns logs for jobs owned by the authenticated user (unless using service_role).
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
jobId | string | Job ID |
afterLine? | number | Optional line number to get logs after (for polling/streaming) |
Returns
Section titled “Returns”Promise<object>
Promise resolving to { data, error } tuple with execution logs
| Name | Type |
|---|---|
data | null | ExecutionLog[] |
error | null | Error |
Example
Section titled “Example”// Get all logs for a jobconst { data: logs, error } = await client.jobs.getLogs('550e8400-e29b-41d4-a716-446655440000')
if (logs) { for (const log of logs) { console.log(`[${log.level}] ${log.message}`) }}
// Backfill + stream patternconst { data: logs } = await client.jobs.getLogs(jobId)let lastLine = Math.max(...(logs?.map(l => l.line_number) ?? []), 0)
const channel = client.realtime .executionLogs(jobId, 'job') .onLog((log) => { if (log.line_number > lastLine) { displayLog(log) lastLine = log.line_number } }) .subscribe()list()
Section titled “list()”list(
filters?):Promise<object>
List jobs submitted by the current user
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
filters? | object | Optional filters (status, namespace, limit, offset) |
filters.includeResult? | boolean | - |
filters.limit? | number | - |
filters.namespace? | string | - |
filters.offset? | number | - |
filters.status? | string | - |
Returns
Section titled “Returns”Promise<object>
Promise resolving to { data, error } tuple with array of jobs
| Name | Type |
|---|---|
data | null | Job[] |
error | null | Error |
Example
Section titled “Example”// List all your jobsconst { data: jobs, error } = await client.jobs.list()
// Filter by statusconst { data: running } = await client.jobs.list({ status: 'running'})
// Paginateconst { data: page } = await client.jobs.list({ limit: 20, offset: 40})retry()
Section titled “retry()”retry(
jobId):Promise<object>
Retry a failed job
Creates a new job execution with the same parameters
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
jobId | string | Job ID to retry |
Returns
Section titled “Returns”Promise<object>
Promise resolving to { data, error } tuple with new job
| Name | Type |
|---|---|
data | null | Job |
error | null | Error |
Example
Section titled “Example”const { data: newJob, error } = await client.jobs.retry('550e8400-e29b-41d4-a716-446655440000')
if (newJob) { console.log('Job retried, new ID:', newJob.id)}submit()
Section titled “submit()”submit(
jobName,payload?,options?):Promise<object>
Submit a new job for execution
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
jobName | string | Name of the job function to execute |
payload? | unknown | Job input data |
options? | object | Additional options (priority, namespace, scheduled time, onBehalfOf) |
options.namespace? | string | - |
options.onBehalfOf? | OnBehalfOf | Submit job on behalf of another user (service_role only). The job will be created with the specified user’s identity, allowing them to see the job and its logs via RLS. |
options.priority? | number | - |
options.scheduled? | string | - |
Returns
Section titled “Returns”Promise<object>
Promise resolving to { data, error } tuple with submitted job details
| Name | Type |
|---|---|
data | null | Job |
error | null | Error |
Example
Section titled “Example”// Submit a simple jobconst { 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 priorityconst { data } = await client.jobs.submit('high-priority-task', payload, { priority: 10})
// Schedule for laterconst { data } = await client.jobs.submit('scheduled-task', payload, { scheduled: '2025-01-01T00:00:00Z'})
// Submit on behalf of a user (service_role only)const { data } = await serviceClient.jobs.submit('user-task', payload, { onBehalfOf: { user_id: 'user-uuid', user_email: 'user@example.com' }})