Click or drag to resize

TemporalSettings Class

Temporal client settings.

Note Note
Temporal settings properties are considered to be read/write until they are used for connecting a TemporalClient. After that time, these properties are considered read-only and an InvalidOperationException will be thrown when you try to set a property value.
Inheritance Hierarchy
SystemObject
  Neon.TemporalTemporalSettings

Namespace:  Neon.Temporal
Assembly:  Neon.Temporal (in Neon.Temporal.dll) Version: 2.10.0-alpha
Syntax
public class TemporalSettings

The TemporalSettings type exposes the following members.

Constructors
  NameDescription
Public methodTemporalSettings
Constructor.
Top
Properties
  NameDescription
Public propertyActivityHeartbeatTimeoutSeconds
Specifies the default maximum allowed between activity heartbeats. Activities that don't submit heartbeats within the time will be considered to be unhealthy and will be terminated. This defaults to 60 seconds.
Public propertyActivityScheduleToCloseTimeoutSeconds
Specifies the default maximum time an activity is allowed to wait after being scheduled until it's actually scheduled to execute on a worker. This defaults to 24 hours.
Public propertyActivityScheduleToStartTimeoutSeconds
Specifies the default maximum time an activity may wait to be started after being scheduled. This defaults to 24 hours.
Public propertyActivityStartToCloseTimeoutSeconds
Specifies the default maximum time an activity may run after being started. This defaults to 24 hours.
Public propertyBinaryFolder
Optionally specifies the folder where the embedded temporal-proxy binary will be written before starting it. This defaults to null which specifies that the binary will be written to the same folder where the Neon.Temporal assembly resides. This folder may not be writable by the current user so this allows you to specify an alternative folder.
Public propertyBinaryPath

Optionally specifies the path to the temporal-proxy executable file. This file must already be present on disk when a TemporalClient connection is established and the appropriate execute permissions must be set for Linux and OS/X. This property takes presidence over BinaryFolder when set.

This is useful for situations where the executable must be pre-provisioned for security. One example is deploying Temporal workers to a Docker container with a read-only file system.

Note Note
You can use the ExtractTemporalProxy(String) method to extract the Windows, Linux, and OS/X builds of the temporal-proxy executable from the Neon.Temporal assembly.
Public propertyClientIdentity
Optionally identifies the client application establishing the connection so that Temporal may include this in its logs and metrics. This defaults to "unknown".
Public propertyClientTimeoutSeconds
Optionally specifies the maximum time the client should wait for synchronous operations to complete. This defaults to 10 seconds.
Public propertyConnectRetries
Specifies the number of times to retry connecting to the Temporal cluster. This defaults to 3.
Public propertyConnectRetryDelaySeconds
Specifies the number of seconds to delay between cluster connection attempts. This defaults to 5.0 seconds.
Public propertyCreateNamespace

Optionally create the Namespace if it doesn't already exist. This defaults to false.

Note Note
Enabling this can be handy for unit testing where you'll likely be starting off with a virgin Temporal server when the test start. We don't recommend enabling this for production services. For production, you should explicitly create your namespaces with suitable setttings such has how long workflow histories are to be retained.
Note Note
If the default namespace doesn't exist when CreateNamespace=true when a connection is established, it will be initialized to retain workflow histories for up to 7 days.
Public propertyDebug
Optionally specifies that the connection should run in DEBUG mode. This currently launches the temporal-proxy with a command window (on Windows only) to make it easier to see any output it generates and also has temporal-proxy. This defaults to false.
Public propertyDebugDisableHandshakes
INTERNAL USE ONLY: Optionally indicates that the temporal-client will not perform the InitializeRequest/InitializeReply and TerminateRequest/TerminateReply handshakes with the temporal-proxy for debugging purposes. This defaults to false.
Public propertyDebugDisableHeartbeats
INTERNAL USE ONLY: Optionally disable health heartbeats. This can be useful while debugging the client but should never be set for production. This defaults to false.
Public propertyDebugHttpTimeout
INTERNAL USE ONLY: Optionally specifies the timeout to use for HTTP requests made to the temporal-proxy. This defaults to 5 seconds.
Public propertyDebugIgnoreHeartbeats
INTERNAL USE ONLY: Optionally disables heartbeat handling by the emulated temporal-proxy for testing purposes.
Public propertyDebugIgnoreTimeouts
INTERNAL USE ONLY: Optionally ignore operation timeouts. This can be useful while debugging the client but should never be set for production. This defaults to false.
Public propertyDebugPrelaunched
INTERNAL USE ONLY: Optionally indicates that the temporal-proxy will already be running for debugging purposes. When this is true, the temporal-client be hardcoded to listen on 127.0.0.1:5001 and the temporal-proxy will be assumed to be listening on 127.0.0.1:5000. This defaults to false.
Public propertyDefaultTaskQueue
Specifies the default Temporal task queue for this client. This is optional and defaults to null.
Public propertyHeartbeatIntervalSeconds
Optionally specifies the interval at which heartbeats are transmitted to temporal-proxy as a health check. This defaults to 5 seconds.
Public propertyHeartbeatTimeoutSeconds
Optionally specifies the maximum time to allow the temporal-proxy to respond to a heartbeat message. The proxy will be considered to be unhealthy when this happens. This defaults to 5 seconds.
Public propertyHostPort
Specifies the Temporal server host and port being connected. This is typically formatted as host:port where host is the IP address or hostname for the Temporal server. Alternatively, this can be formatted as dns:///host:port to enable DNS round-robin lookups. This defaults to localhost:7233.
Public propertyListenPort
Optionally specifies the port where the client will listen for traffic from the associated temporal-proxy. This defaults to 0 which specifies that lets the operating system choose an unused ephermal port.
Public propertyLogDuringReplay
Optionally enable workflow logging while the workflow is being replayed from history. This should generally be enabled only while debugging. This defaults to false.
Public propertyLogTemporal

Optionally specifies that low-level log messages from the embedded GOLANG Temporal client will be included in the log output. This defaults to false.

Note Note
LogTemporal controls whether log messages coming directly from the GOLANG client are included in the log output. These messages will include things like details for connection and workflow execution failures. LogTemporalProxy controls whether log messages from from the temporal-proxy code itself will be included.
Public propertyLogTemporalProxy

Optionally specifies that log messages from the internal temporal-proxy code that bridges between .NET and the embedded GOLANG Temporal client will be included in the log output. This defaults to false.

Note Note
LogTemporal controls whether log messages coming directly from the GOLANG client are included in the log output. These messages will include things like details for connection and workflow execution failures. LogTemporalProxy controls whether log messages from from the temporal-proxy code itself will be included.
Public propertyMaxWorkflowKeepAliveSeconds
EXPERIMENTAL: Specifies the maximum seconds that a workflow will be kept alive after the workflow method returns to handle any oustanding synchronous signal queries. This defaults to 30.0 seconds.
Public propertyMaxWorkflowWaitUntilRunningSeconds
Public propertyNamespace
Specifies the default Temporal namespace for this client. This is required and defaults to "default".
Public propertyProxyLogLevel
Optionally specifies the logging level for the associated temporal-proxy. This defaults to None which will be appropriate for most production situations. You may wish to set this to Info or Debug while debugging.
Public propertyProxyTimeoutSeconds
Optionally specifies the maximum time to allow the temporal-proxy to indicate that it has received a proxy request message by returning an OK response. The proxy will be considered to be unhealthy when this happens. This defaults to 5 seconds.
Public propertySecurityToken

The Temporal cluster security token. This defaults to null.

Note Note
This is not currently supported by the .NET Temporal client and should be left alone for now.
Public propertyWorkflowDecisionTaskTimeoutSeconds
Specifies the default maximum time a workflow decision task may execute. This must be with the range of 1 < value <= 60 seconds. This defaults to 10 seconds.
Public propertyWorkflowIdReusePolicy
Specifies what happens when Temporal workflows attempt to reuse workflow IDs. This defaults to AllowDuplicate. Workflows can customize this via WorkflowOptions or ChildWorkflowOptions or by setting this in the WorkflowMethodAttribute tagging the workflow entry point method
Public propertyWorkflowScheduleToStartTimeoutSeconds
Specifies the default maximum time a workflow can wait between being scheduled and actually begin executing. This defaults to 24 hours.
Public propertyWorkflowStartToCloseTimeoutSeconds
Specifies the default maximum workflow execution time. This defaults to 24 hours.
Top
Methods
  NameDescription
Public methodClone
Returns a copy of the current instance.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
See Also