Sleep until a time step.sleepUntil()
Use step.sleepUntil()
to pause the execution of your function until a specific date time.
export default inngest.createFunction(
{ name: "Send scheduled reminder" },
{ event: "app/reminder.scheduled" },
async ({ event, step }) => {
const d = new Date(event.data.remind_at)
await step.sleepUntil(d);
// Do something else
}
);
To sleep until a particular amount of time from now, use step.sleep()
instead.
step.sleep(datetime): Promise
- Name
datetime
- Type
- Date | string
- Required
- required
- Description
The datetime at which to continue execution of your function. This can be:
- A
Date
object - Any date time string in the format accepted by the
Date
object, i.e.YYYY-MM-DDTHH:mm:ss.sssZ
or simplified forms likeYYYY-MM-DD
orYYYY-MM-DDHH:mm:ss
- A
// Sleep until the new year
await step.sleepUntil("2024-01-01");
// Sleep until September ends
await step.sleepUntil("2023-09-30T11:59:59");
// Sleep until the end of the this week
const d = dayjs().endOf('week').toDate();
await step.sleepUntil(d)
step.sleepUntil()
must be called using await
or some other Promise handler to ensure your function sleeps correctly.