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
Dateobject - Any date time string in the format accepted by the
Dateobject, i.e.YYYY-MM-DDTHH:mm:ss.sssZor simplified forms likeYYYY-MM-DDorYYYY-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.