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(
  { id: "send-scheduled-reminder" },
  { event: "app/reminder.scheduled" },
  async ({ event, step }) => {
    const d = new Date(event.data.remind_at);
    await step.sleepUntil("wait-for-the-date", 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:

// Sleep until the new year
await step.sleepUntil("happy-new-year", "2024-01-01");

// Sleep until September ends
await step.sleepUntil("wake-me-up", "2023-09-30T11:59:59");

// Sleep until the end of the this week
const d = dayjs().endOf("week").toDate();
await step.sleepUntil("wait-for-end-of-the-week", d);

step.sleepUntil() must be called using await or some other Promise handler to ensure your function sleeps correctly.