Liking cljdoc? Tell your friends :D

temporal.workflow

Methods for defining and implementing Temporal workflows

Methods for defining and implementing Temporal workflows
raw docstring

awaitclj

(await pred)
(await duration pred)

Efficiently parks the workflow until 'pred' evaluates to true. Re-evaluates on each state transition

Efficiently parks the workflow until 'pred' evaluates to true.  Re-evaluates on each state transition
sourceraw docstring

defworkflowcljmacro

(defworkflow name params* & body)

Defines a new workflow, similar to defn, expecting a 1-arity parameter list and body. Should evaluate to something serializable, which will become available for temporal.client.core/get-result.

Arguments:

(defworkflow my-workflow
    [{:keys [foo]}]
    ...)

(let [w (create-workflow client my-workflow {:task-queue ::my-task-queue})]
   (start w {:foo "bar"}))
Defines a new workflow, similar to defn, expecting a 1-arity parameter list and body.  Should evaluate to something
serializable, which will become available for [[temporal.client.core/get-result]].

Arguments:

- `args`: Passed from 'params' to [[temporal.client.core/start]] or [[temporal.client.core/signal-with-start]]

```clojure
(defworkflow my-workflow
    [{:keys [foo]}]
    ...)

(let [w (create-workflow client my-workflow {:task-queue ::my-task-queue})]
   (start w {:foo "bar"}))
```
sourceraw docstring

get-infoclj

(get-info)

Return info about the current workflow

Return info about the current workflow
sourceraw docstring

register-query-handler!clj

(register-query-handler! f)

Registers a DynamicQueryHandler listener that handles queries sent to the workflow, using temporal.client.core/query.

Use inside a workflow definition with 'f' closing over the workflow state (e.g. atom) and evaluating to results in function of the workflow state and its 'query-type' and 'args' arguments.

Arguments:

  • f: a 2-arity function, expecting 2 arguments, evaluating to something serializable.

f arguments:

  • query-type: keyword
  • args: params value or data structure
(defworkflow stateful-workflow
  [{:keys [init] :as args}]
  (let [state (atom init)]
    (register-query-handler! (fn [query-type args]
                               (when (= query-type :my-query)
                                 (get-in @state [:path :to :answer]))))
    ;; workflow implementation
    ))
Registers a DynamicQueryHandler listener that handles queries sent to the workflow, using [[temporal.client.core/query]].

Use inside a workflow definition with 'f' closing over the workflow state (e.g. atom) and
evaluating to results in function of the workflow state and its 'query-type' and 'args' arguments.

Arguments:
- `f`: a 2-arity function, expecting 2 arguments, evaluating to something serializable.

`f` arguments:
- `query-type`: keyword
- `args`: params value or data structure

```clojure
(defworkflow stateful-workflow
  [{:keys [init] :as args}]
  (let [state (atom init)]
    (register-query-handler! (fn [query-type args]
                               (when (= query-type :my-query)
                                 (get-in @state [:path :to :answer]))))
    ;; workflow implementation
    ))
```
sourceraw docstring

sleepclj

(sleep duration)

Efficiently parks the workflow for 'duration'

Efficiently parks the workflow for 'duration'
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close