我了解我可以在流程中使用“等待”来造成延迟;但是,我需要在每次记录更新之间延迟,而不是在整个数据集的每个操作之间延迟。
简单地说:如果我有 100 条记录并且想要更新记录 001,请等待 5 分钟,然后更新记录 002,然后等待 5 分钟......更新记录 100。(我有一个标志来标识已经更新的记录)
我了解我可以在流程中使用“等待”来造成延迟;但是,我需要在每次记录更新之间延迟,而不是在整个数据集的每个操作之间延迟。
简单地说:如果我有 100 条记录并且想要更新记录 001,请等待 5 分钟,然后更新记录 002,然后等待 5 分钟......更新记录 100。(我有一个标志来标识已经更新的记录)
由于您按需启动工作流,因此无法在您选择的每条记录之间设置延迟。
一种可能的解决方案是编写一个控制台应用程序,该应用程序将检索记录并延迟启动工作流。
像这样的东西:
EntityCollection results = service.RetrieveMultiple(retrieveQuery);
foreach (Entity result in results.Entities)
{
ExecuteWorkflowRequest requestExecuteWorkflow = new ExecuteWorkflowRequest();
ExecuteWorkflowResponse responseExecuteWorkflow = new ExecuteWorkflowResponse();
requestExecuteWorkflow.WorkflowId = workflow.Id; // Workflow Guid;
requestExecuteWorkflow.EntityId = result.Id;
responseExecuteWorkflow = (ExecuteWorkflowResponse)service.Execute(requestExecuteWorkflow);
Thread.Sleep(5 * 1000 * 60);
}