我有一个工作流程,它将监视某些数据库并在注意到触发器时启动其他工作流程。我只希望这个“观察者”工作流程的一个实例在任何时间点运行;否则,如果两个或多个正在运行,它们都会注意到更改,并且都会启动相同的工作流程,这将无法正常工作。
此“观察者”工作流程将持续存在。那么...我该如何做到这一点,以便如果运行时还没有保存此工作流的实例,它会启动一个实例,但如果已经存在,则只需使用保存的实例?
听起来我几乎可以创建一个小型的运行一次控制台应用程序来启动我想要的工作流程,然后“真正的”运行时只是拉出持久的工作流程并且从不尝试创建新的工作流程,但这并没有听起来非常优雅。
最佳答案
我正在为我目前正在进行的项目考虑这个问题。但在我看来,监控数据库的功能并不是工作流程的职责。
我们将创建一个服务来添加到运行时。该服务将引发工作流在 HandleEventActivity 中监听的事件。这样,工作流程就会闲置、持久并保持这种状态,直到真正需要执行实际工作为止。
关于workflow - Windows工作流程: "singleton"-style workflow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/981690/