ChatiumFor developersPlaygroundPricing
Sign in

scheduleJobsAfter

Allows you to asynchronously execute a scheduled task after a specified interval of time.

Usage/Signature

import { scheduleJobAfter } from '@app/jobs'
await scheduleJobAfter(ctx, scheduleDuration, scheduleMeasure, jobUrl, dataObject)

Arguments

Parameter Type Description
ctx app.Ctx Request context. Used for internal implementation, storing information about the user who created the record, and allows executing the request in the appropriate transaction.
scheduleDuration number The waiting period before executing the task.
scheduleMeasure Unit of measure for the waiting period Possible values: milliseconds, seconds, minutes, hours, days, weeks, months, quarters, years
jobUrl string URL of the job created using app.job
dataObject object Object for passing data into the job.

Returns

string - the ID of the task, which can be canceled using the cancelJob function.

Example of Function Usage

import { scheduleJobAfter } from '@app/jobs'

app.screen('/', function (ctx, req) {
  return (
    <screen>
      <button onClick={setJobAction.apiCall()} class={['primary', 'section']}>
        Schedule job
      </button>
    </screen>
  )
})

const setJobAction = app.apiCall('scheduleJob', async (ctx, req) => {
  await scheduleJobAfter(ctx, 5, 'seconds', jobAction.path(), {
    key: '123',
  })
})

const jobAction = app.job('jobPath', async (ctx, params) => {
  ctx.log('Job called', params)
})