# Class WorkflowTimerProcessor OptimaJet.Workflow.Core.Runtime.Timers.WorkflowTimerProcessor Provides timer processing for workflow runtime instances. Namespace: [OptimaJet.Workflow.Core.Runtime.Timers](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.Timers/) ```csharp public class WorkflowTimerProcessor ``` ## Constructors `public WorkflowTimerProcessor(WorkflowRuntime workflowRuntime, CancellationToken token)` Initializes a new instance of the [WorkflowTimerProcessor](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.Timers/WorkflowTimerProcessor/) class. ### Parameters | Name | Type | Description | | --- | --- | --- | | `workflowRuntime` | `WorkflowRuntime` | Workflow runtime used to execute timer actions and update process state. | | `token` | `CancellationToken` | Cancellation token observed while processing timers. | ## Methods `public Func GetTimerProcessorAsyncAction(IGrouping timersGroup)` Creates an asynchronous delegate that processes all timers in the specified group. ### Parameters | Name | Type | Description | | --- | --- | --- | | `timersGroup` | `IGrouping` | A collection of workflow timers grouped by root process identifier. | ### Returns | Type | Description | | --- | --- | | `Func` | A delegate that can be executed to process all timers in `timersGroup` sequentially. | ### Remarks The returned action orders timers by [WorkflowTimer.NextExecutionDateTime](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/WorkflowTimer/), locks each timer before execution, executes it through the runtime timer execution flow, and then removes the timer or resets process state as needed. [Previous TimerCategory](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.Timers/TimerCategory/) [Next ProcessInstancesTree](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Subprocess/ProcessInstancesTree/)