client.defineJob({
  id: "random-job",
  name: "Random Job",
  version: "0.0.1",
  trigger: eventTrigger({
    name: "example.event",
  }),
  run: async (payload, io, ctx) => {
    // generate random numbers
    const small = await io.random("random-small");    
    const large = await io.random("random-large", {
      min: 10,
      max: 200,
      round: true
    });

    await io.logger.info(`${small} is smaller than ${large}`);
  },
});

Parameters

cacheKey
string
required

Should be a stable and unique cache key inside the run(). See resumability for more information.

min
number
default: "0"required

Sets the lower bound (inclusive). Can’t be higher than max.

max
number
default: "1"required

Sets the upper bound (exclusive). Can’t be lower than min.

round
boolean
default: "false"required

Controls rounding to the nearest integer. Any max integer will become inclusive when enabled. Rounding with floating-point bounds may cause unexpected skew and boundary inclusivity.

Returns

A Promise that resolves with a pseudo-random number. Always resolves to an integer when rounding is enabled.