krontab/src/commonMain/kotlin/com/insanusmokrassar/krontab/Executes.kt

26 lines
917 B
Kotlin

package com.insanusmokrassar.krontab
suspend inline fun CronDateTimeScheduler.executeInfinity(noinline block: suspend () -> Unit) = doInLoop {
block()
true
}
suspend inline fun executeInfinity(
scheduleConfig: String,
noinline block: suspend () -> Unit
) = createCronDateTimeScheduler(scheduleConfig).executeInfinity(block)
suspend inline fun CronDateTimeScheduler.executeWhile(noinline block: suspend () -> Boolean) = doInLoop(block)
suspend inline fun executeWhile(
scheduleConfig: String,
noinline block: suspend () -> Boolean
) = createCronDateTimeScheduler(scheduleConfig).executeWhile(block)
suspend inline fun CronDateTimeScheduler.executeOnce(noinline block: suspend () -> Unit) = doInLoop {
block()
false
}
suspend inline fun executeOnce(
scheduleConfig: String,
noinline block: suspend () -> Unit
) = createCronDateTimeScheduler(scheduleConfig).executeOnce(block)