RepeatedTask

class RepeatedTask @JvmOverloads constructor(name: String, meterRegistry: MeterRegistry, repeatedTaskConfig: RepeatedTaskConfig, retryPolicy: suspend RetryFailure<Throwable>.() -> RetryInstruction, taskConfig: TaskConfig, task: (name: String, taskConfig: TaskConfig) -> Status)

A RepeatedTask runs a repeated task at the user controlled rate.

Tasks are called with a TaskConfig and are expected to return a Status or throw an exception. By default, the retry policy will try again if an exception is thrown and will apply a binaryExponentialBackoff using the supplied RepeatedTaskConfig. A Status.NO_WORK or Status.FAILED will be mapped to NoWorkForTaskException and FailedTaskException and thrown to apply the retry policy.

If the Status.NO_RESCHEDULE is returned, the RepeatedTask is shutdown.

Example usage:

    val repeatedTask = RepeatedTask("task") {
      // do task stuff...
      return Status.OK
    }

    repeatedTask.startUp()

Constructors

Link copied to clipboard
fun RepeatedTask(name: String, meterRegistry: MeterRegistry = Metrics.globalRegistry, repeatedTaskConfig: RepeatedTaskConfig = RepeatedTaskConfig(), retryPolicy: suspend RetryFailure<Throwable>.() -> RetryInstruction = defaultThrowableRetryPolicy + binaryExponentialBackoff( base = repeatedTaskConfig.defaultJitterMs, max = repeatedTaskConfig.defaultMaxDelayMs ), taskConfig: TaskConfig = TaskConfig(), task: (name: String, taskConfig: TaskConfig) -> Status)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
fun isRunning(): Boolean
Link copied to clipboard
fun shutDown()
Link copied to clipboard
fun startUp()

Properties

Link copied to clipboard
val name: String