QueueSourceThis module provides a job queue. This is typically used for long-running or resource intensive tasks.
This is the description of a job. A job dispatch is a job description and some arguments/input.
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 ... endval 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 Queue__.Model.Job.t