Safe Haskell | None |
---|---|
Language | Haskell2010 |
Temporal.Core.Worker
Synopsis
- data Worker (ty :: WorkerType)
- getWorkerClient :: Worker 'Real -> Client
- data WorkerConfig = WorkerConfig {
- namespace :: Text
- taskQueue :: Text
- buildId :: Text
- identityOverride :: Maybe Text
- maxCachedWorkflows :: Word64
- maxOutstandingWorkflowTasks :: Word64
- maxOutstandingActivities :: Word64
- maxOutstandingLocalActivities :: Word64
- maxConcurrentWorkflowTaskPolls :: Word64
- nonstickyToStickyPollRatio :: Float
- maxConcurrentActivityTaskPolls :: Word64
- noRemoteActivities :: Bool
- stickyQueueScheduleToStartTimeoutMillis :: Word64
- maxHeartbeatThrottleIntervalMillis :: Word64
- defaultHeartbeatThrottleIntervalMillis :: Word64
- maxActivitiesPerSecond :: Maybe Double
- maxTaskQueueActivitiesPerSecond :: Maybe Double
- gracefulShutdownPeriodMillis :: Word64
- nondeterminismAsWorkflowFail :: Bool
- nondeterminismAsWorkflowFailForTypes :: [Text]
- getWorkerConfig :: forall (ty :: WorkerType). Worker ty -> WorkerConfig
- defaultWorkerConfig :: WorkerConfig
- data WorkerError = WorkerError {
- code :: WorkerErrorCode
- message :: Text
- data WorkerErrorCode
- data WorkerType
- data SWorkerType (ty :: WorkerType) where
- SReal :: SWorkerType 'Real
- SReplay :: SWorkerType 'Replay
- data SomeWorkerType where
- SomeWorkerType :: forall (ty :: WorkerType). SWorkerType ty -> SomeWorkerType
- newWorker :: Client -> WorkerConfig -> IO (Either WorkerError (Worker 'Real))
- validateWorker :: Worker 'Real -> IO (Either WorkerValidationError ())
- newReplayWorker :: Runtime -> WorkerConfig -> IO (Either WorkerError (Worker 'Replay, HistoryPusher))
- closeWorker :: forall (ty :: WorkerType). Worker ty -> IO ()
- type family InactiveForReplay (ty :: WorkerType) a where ...
- data WorkflowActivation
- pollWorkflowActivation :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> IO (Either WorkerError WorkflowActivation)
- data ActivityTask
- pollActivityTask :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> IO (Either WorkerError ActivityTask)
- data WorkflowActivationCompletion
- completeWorkflowActivation :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> WorkflowActivationCompletion -> IO (Either WorkerError ())
- data ActivityTaskCompletion
- completeActivityTask :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> ActivityTaskCompletion -> IO (Either WorkerError ())
- data ActivityHeartbeat
- recordActivityHeartbeat :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> ActivityHeartbeat -> IO (Either WorkerError ())
- requestWorkflowEviction :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> RunId -> IO ()
- initiateShutdown :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> IO ()
- finalizeShutdown :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> IO (Either WorkerError ())
- data HistoryPusher
- data History
- pushHistory :: HistoryPusher -> WorkflowId -> Either ByteString History -> IO (Either WorkerError ())
- closeHistory :: HistoryPusher -> IO ()
- class KnownWorkerType (ty :: WorkerType) where
- knownWorkerType :: SWorkerType ty
Documentation
data Worker (ty :: WorkerType) Source #
data WorkerConfig Source #
Constructors
Instances
FromJSON WorkerConfig Source # | |
Defined in Temporal.Core.Worker | |
ToJSON WorkerConfig Source # | |
Defined in Temporal.Core.Worker Methods toJSON :: WorkerConfig -> Value # toEncoding :: WorkerConfig -> Encoding # toJSONList :: [WorkerConfig] -> Value # toEncodingList :: [WorkerConfig] -> Encoding # omitField :: WorkerConfig -> Bool # |
getWorkerConfig :: forall (ty :: WorkerType). Worker ty -> WorkerConfig Source #
data WorkerError Source #
Constructors
WorkerError | |
Fields
|
Instances
Exception WorkerError Source # | |
Defined in Temporal.Core.CTypes Methods toException :: WorkerError -> SomeException # fromException :: SomeException -> Maybe WorkerError # displayException :: WorkerError -> String # backtraceDesired :: WorkerError -> Bool # | |
Show WorkerError Source # | |
Defined in Temporal.Core.CTypes Methods showsPrec :: Int -> WorkerError -> ShowS # show :: WorkerError -> String # showList :: [WorkerError] -> ShowS # | |
Eq WorkerError Source # | |
Defined in Temporal.Core.CTypes |
data WorkerErrorCode Source #
Constructors
SDKError | |
InitWorkerFailed | |
InitReplayWorkerFailed | |
InvalidProto | |
ReplayWorkerClosed | |
PollShutdown | |
PollFailure | |
CompletionFailure | |
InvalidWorkerConfig | |
UnknownError Word8 |
Instances
Storable WorkerErrorCode Source # | |
Defined in Temporal.Core.CTypes Methods sizeOf :: WorkerErrorCode -> Int # alignment :: WorkerErrorCode -> Int # peekElemOff :: Ptr WorkerErrorCode -> Int -> IO WorkerErrorCode # pokeElemOff :: Ptr WorkerErrorCode -> Int -> WorkerErrorCode -> IO () # peekByteOff :: Ptr b -> Int -> IO WorkerErrorCode # pokeByteOff :: Ptr b -> Int -> WorkerErrorCode -> IO () # peek :: Ptr WorkerErrorCode -> IO WorkerErrorCode # poke :: Ptr WorkerErrorCode -> WorkerErrorCode -> IO () # | |
Show WorkerErrorCode Source # | |
Defined in Temporal.Core.CTypes Methods showsPrec :: Int -> WorkerErrorCode -> ShowS # show :: WorkerErrorCode -> String # showList :: [WorkerErrorCode] -> ShowS # | |
Eq WorkerErrorCode Source # | |
Defined in Temporal.Core.CTypes Methods (==) :: WorkerErrorCode -> WorkerErrorCode -> Bool # (/=) :: WorkerErrorCode -> WorkerErrorCode -> Bool # |
data WorkerType Source #
data SWorkerType (ty :: WorkerType) where Source #
A singleton type for WorkerType
.
Constructors
SReal :: SWorkerType 'Real | |
SReplay :: SWorkerType 'Replay |
data SomeWorkerType where Source #
Constructors
SomeWorkerType :: forall (ty :: WorkerType). SWorkerType ty -> SomeWorkerType |
newWorker :: Client -> WorkerConfig -> IO (Either WorkerError (Worker 'Real)) Source #
newReplayWorker :: Runtime -> WorkerConfig -> IO (Either WorkerError (Worker 'Replay, HistoryPusher)) Source #
closeWorker :: forall (ty :: WorkerType). Worker ty -> IO () Source #
type family InactiveForReplay (ty :: WorkerType) a where ... Source #
Equations
InactiveForReplay 'Real a = a | |
InactiveForReplay 'Replay _1 = () |
data WorkflowActivation #
Fields :
runId
:: Lens' WorkflowActivation Data.Text.Text
timestamp
:: Lens' WorkflowActivation Proto.Google.Protobuf.Timestamp.Timestamp
maybe'timestamp
:: Lens' WorkflowActivation (Prelude.Maybe Proto.Google.Protobuf.Timestamp.Timestamp)
isReplaying
:: Lens' WorkflowActivation Prelude.Bool
historyLength
:: Lens' WorkflowActivation Data.Word.Word32
jobs
:: Lens' WorkflowActivation [WorkflowActivationJob]
vec'jobs
:: Lens' WorkflowActivation (Data.Vector.Vector WorkflowActivationJob)
availableInternalFlags
:: Lens' WorkflowActivation [Data.Word.Word32]
vec'availableInternalFlags
:: Lens' WorkflowActivation (Data.Vector.Unboxed.Vector Data.Word.Word32)
historySizeBytes
:: Lens' WorkflowActivation Data.Word.Word64
continueAsNewSuggested
:: Lens' WorkflowActivation Prelude.Bool
buildIdForCurrentTask
:: Lens' WorkflowActivation Data.Text.Text
Instances
pollWorkflowActivation :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> IO (Either WorkerError WorkflowActivation) Source #
data ActivityTask #
Fields :
taskToken
:: Lens' ActivityTask Data.ByteString.ByteString
maybe'variant
:: Lens' ActivityTask (Prelude.Maybe ActivityTask'Variant)
maybe'start
:: Lens' ActivityTask (Prelude.Maybe Start)
start
:: Lens' ActivityTask Start
maybe'cancel
:: Lens' ActivityTask (Prelude.Maybe Cancel)
cancel
:: Lens' ActivityTask Cancel
Instances
pollActivityTask :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> IO (Either WorkerError ActivityTask) Source #
data WorkflowActivationCompletion #
Fields :
runId
:: Lens' WorkflowActivationCompletion Data.Text.Text
maybe'status
:: Lens' WorkflowActivationCompletion (Prelude.Maybe WorkflowActivationCompletion'Status)
maybe'successful
:: Lens' WorkflowActivationCompletion (Prelude.Maybe Success)
successful
:: Lens' WorkflowActivationCompletion Success
maybe'failed
:: Lens' WorkflowActivationCompletion (Prelude.Maybe Failure)
failed
:: Lens' WorkflowActivationCompletion Failure
Instances
completeWorkflowActivation :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> WorkflowActivationCompletion -> IO (Either WorkerError ()) Source #
data ActivityTaskCompletion #
Fields :
taskToken
:: Lens' ActivityTaskCompletion Data.ByteString.ByteString
result
:: Lens' ActivityTaskCompletion Proto.Temporal.Sdk.Core.ActivityResult.ActivityResult.ActivityExecutionResult
maybe'result
:: Lens' ActivityTaskCompletion (Prelude.Maybe Proto.Temporal.Sdk.Core.ActivityResult.ActivityResult.ActivityExecutionResult)
Instances
completeActivityTask :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> ActivityTaskCompletion -> IO (Either WorkerError ()) Source #
data ActivityHeartbeat #
Fields :
taskToken
:: Lens' ActivityHeartbeat Data.ByteString.ByteString
details
:: Lens' ActivityHeartbeat [Proto.Temporal.Api.Common.V1.Message.Payload]
vec'details
:: Lens' ActivityHeartbeat (Data.Vector.Vector Proto.Temporal.Api.Common.V1.Message.Payload)
Instances
recordActivityHeartbeat :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> ActivityHeartbeat -> IO (Either WorkerError ()) Source #
requestWorkflowEviction :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> RunId -> IO () Source #
initiateShutdown :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> IO () Source #
Initiate shutdown.
finalizeShutdown :: forall (ty :: WorkerType). KnownWorkerType ty => Worker ty -> IO (Either WorkerError ()) Source #
Completes shutdown and frees all resources. You should avoid simply dropping workers, as this does not allow async tasks to report any panics that may have occurred cleanly.
This should be called only after initiateShutdown
has resolved and/or both polling
functions have returned ShutDown
errors.
data HistoryPusher Source #
Fields :
events
:: Lens' History [HistoryEvent]
vec'events
:: Lens' History (Data.Vector.Vector HistoryEvent)
Instances
pushHistory :: HistoryPusher -> WorkflowId -> Either ByteString History -> IO (Either WorkerError ()) Source #
closeHistory :: HistoryPusher -> IO () Source #
class KnownWorkerType (ty :: WorkerType) where Source #
Methods
knownWorkerType :: SWorkerType ty Source #
Instances
KnownWorkerType 'Real Source # | |
Defined in Temporal.Core.Worker Methods | |
KnownWorkerType 'Replay Source # | |
Defined in Temporal.Core.Worker Methods |