package sihl
Module Sihl_queue_coreSource
This module provides a job queue. This is typically used for long-running or resource intensive tasks.
This is the actual job instance that is derived from the job description 'a Job.t and some input. This needs to be serialized and persisted for persistent job queues.
A workable job can process a job instance that is persisted. We can not store the job directly because of the polymorphic type ('a Job.t).
module Sig : sig ... endSource
val create_job :
name:string ->
?with_context:(Core.Ctx.t -> Core.Ctx.t) ->
input_to_string:('a -> string option) ->
string_to_input:(string option -> ('a, string) Result.t) ->
handle:(Core.Ctx.t -> input:'a -> (unit, string) Result.t Lwt.t) ->
?failed:(Core.Ctx.t -> (unit, string) Result.t Lwt.t) ->
unit ->
'a Sihl_queue_core__.Model.Job.tSource
val set_max_tries :
int ->
'a Sihl_queue_core__.Model.Job.t ->
'a Sihl_queue_core__.Model.Job.tSource
val set_retry_delay :
Utils.Time.duration ->
'a Sihl_queue_core__.Model.Job.t ->
'a Sihl_queue_core__.Model.Job.t