These are the docs for Trigger.dev v2 which will be deprecated on January 31st, 2025. You probably want the v3 docs.

Runs can be paused using delays. They can be very long.

Delays works even if you’re on a serverless platform with timeouts, or if your server goes down. They utilize resumability to ensure that the Run can be resumed after the delay.

Usage

Wait example
client.defineJob({
  id: "delay-job",
  name: "Delay Job",
  version: "0.0.1",
  trigger: eventTrigger({
    name: "example.event",
  }),
  run: async (payload, io, ctx) => {
    await io.logger.info("Hi");

    // the second parameter is the number of seconds to wait
    await io.wait("wait 30 days", 30 * 24 * 60 * 60);

    await io.logger.info("Sorry for the slow reply!");
  },
});