Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows工作流延迟活动行为_C#_.net_Workflow_Android Activity_Delay - Fatal编程技术网

C# Windows工作流延迟活动行为

C# Windows工作流延迟活动行为,c#,.net,workflow,android-activity,delay,C#,.net,Workflow,Android Activity,Delay,我觉得我的问题有点直截了当,但我已经在“背景信息”部分添加了一些问题的细节,以防过于模糊 问题 WorkflowServiceHost如何确定由于延迟而处于空闲状态的持久化活动已达到延迟超时?它是否会将其加载到内存中并每隔一段时间检查一次,或者这里是否发生了其他事情 背景信息 所以,我对工作流有点陌生,我正在尝试确定将其用于需要3个月延迟的业务流程的可行性。基本上,业务流程是允许客户试用3个月的升级服务。为了实现这一点,我正在考虑实施一个Pick活动,该活动在WCF接收(“取消升级接收”)和3个

我觉得我的问题有点直截了当,但我已经在“背景信息”部分添加了一些问题的细节,以防过于模糊

问题

WorkflowServiceHost如何确定由于延迟而处于空闲状态的持久化活动已达到延迟超时?它是否会将其加载到内存中并每隔一段时间检查一次,或者这里是否发生了其他事情

背景信息

所以,我对工作流有点陌生,我正在尝试确定将其用于需要3个月延迟的业务流程的可行性。基本上,业务流程是允许客户试用3个月的升级服务。为了实现这一点,我正在考虑实施一个Pick活动,该活动在WCF接收(“取消升级接收”)和3个月延迟活动之间进行分割。如果延迟过期,它们将被永久升级并更新账单。或者,如果取消被初始化,那么。。。是的,你明白了:)


所以。。。。我关心的是在使用SQL工作流持久性时如何实现延迟。我不想在持久性存储中结束w/500活动,这些活动必须在3个月内每10分钟加载一次,以检查延迟活动是否过期

我用更小的时间窗口来研究这个问题。我仍然很想知道您是否/如何使用工作流解决此问题

我正在使用WF4和您上面提到的选择,然后我的解决方案是尝试使用appfabric根据延迟计时器重新初始化工作流。这是基于我在这里读到的:这里:

我已经测试过pick在一侧延迟的情况下可以完美工作,但现在我必须测试appfabric

也许,我会回来这里更新它的工作原理。或者你可以给我一些见解?

根据,这种工作方式是:

SQL工作流实例存储运行一个内部任务,该任务定期唤醒并检测持久性数据库中可运行或可激活的工作流实例

可激活工作流是满足以下任一条件的工作流:

  • 实例已解锁,并且有一个已过期的挂起计时器。
  • 实例上的锁已过期
  • 实例已解锁,其状态为“正在执行”
所以OP的建议(“它是否将其加载到内存并经常检查”)是正确的

我自己还没有证实这一行为,但在寻找完全相同问题的答案时偶然发现了这条线索,然后找到了相关的MSDN文章,我想与大家分享

希望这有帮助