KronScheduler

interface KronScheduler

This interface was created for abstraction of next operation. Currently, there is only dev.inmo.krontab.internal.CronDateTimeScheduler realisation of this interface inside of this library, but you it is possible to create your own realisation of this interface for scheduling, for example, depending of users activity or something like this

See also

dev.inmo.krontab.internal.CronDateTimeScheduler

Functions

Link copied to clipboard
abstract suspend fun next(relatively: DateTime = DateTime.now()): DateTime?

Inheritors

Link copied to clipboard
Link copied to clipboard

Extensions

Link copied to clipboard
@FlowPreview
fun KronScheduler.asFlow(): Flow<DateTime>

This method is a map for asTzFlow and will works the same but return flow with DateTimes

Link copied to clipboard
@FlowPreview
fun KronScheduler.asTzFlow(): Flow<DateTimeTz>

This Flow will trigger emitting each near time which will be returned from this with attention to time zones

Link copied to clipboard
inline suspend fun KronScheduler.doInfinity(noinline block: suspend () -> Unit)

Will execute block without any checking of result

Link copied to clipboard
inline suspend fun KronScheduler.doInfinityLocal(noinline block: suspend (DateTime) -> Unit)

Will execute block without any checking of result

Link copied to clipboard
inline suspend fun KronScheduler.doInfinityTz(noinline block: suspend (DateTimeTz) -> Unit)

Will execute block without any checking of result

Link copied to clipboard
inline suspend fun <T> KronScheduler.doOnce(noinline block: suspend () -> T): T

Execute block once at the KronScheduler.next time and return result of block calculation.

Link copied to clipboard
inline suspend fun <T> KronScheduler.doOnceLocal(noinline block: suspend (DateTime) -> T): T

Execute block once at the KronScheduler.next time and return result of block calculation.

Link copied to clipboard
inline suspend fun <T> KronScheduler.doOnceTz(noinline block: suspend (DateTimeTz) -> T): T

Execute block once at the KronScheduler.next time and return result of block calculation.

Link copied to clipboard
inline suspend fun KronScheduler.doWhile(noinline block: suspend () -> Boolean)

Will execute block while it will return true as a result of its calculation

Link copied to clipboard
inline suspend fun KronScheduler.doWhileLocal(noinline block: suspend (DateTime) -> Boolean)

Will execute block while it will return true as a result of its calculation

Link copied to clipboard
inline suspend fun KronScheduler.doWhileTz(noinline block: suspend (DateTimeTz) -> Boolean)

Will execute block while it will return true as a result of its calculation

Link copied to clipboard
suspend fun KronScheduler.next(relatively: DateTimeTz): DateTimeTz?
Link copied to clipboard
suspend fun KronScheduler.nextOrNow(): DateTime
Link copied to clipboard
suspend fun KronScheduler.nextOrRelative(relatively: DateTime = DateTime.now()): DateTime
Link copied to clipboard
suspend fun KronScheduler.nextTimeZoned(): DateTimeTz?
Link copied to clipboard
operator fun KronScheduler.plus(kronScheduler: KronScheduler): CollectionKronScheduler

Sources

Link copied to clipboard