【问题标题】:Abort a long running workflow中止长时间运行的工作流程
【发布时间】:2011-12-14 17:17:02
【问题描述】:

我们在项目中使用 Windows WorkFlow、WCF 和 WPF(一种监控工具,它将显示报告的状态,如 IN_PROGRESS、FAILED、SUCCESS)。

工作流将由 WCF 中的 WorkFlowApplication 启动。反过来,工作流将调用旧应用程序(报告生成应用程序),有时在旧应用程序中的操作将需要 4 到 5 小时才能完成。用户需要从 wpf 应用程序中终止这个长时间运行的工作流。我们尝试使用 WorkFlowApplication Abort,但报告生成并没有被终止。我们从 CodeActivity 调用旧版应用程序。

您能否提供调用该遗留应用程序(将调用该 dll 中的一个方法)以及在调用工作流中止时终止该被调用应用程序的最佳方法?

感谢和问候, 瓦伦

【问题讨论】:

  • 您能否发布一些有关如何调用旧版应用程序的代码?该应用程序是否提供某种 Abort 方法?一种选择是杀死正在运行它的进程。
  • 我们通过调用 wf 中的方法从旧版应用程序返回一个对象,返回的对象我们调用旧版应用程序中的一个方法,有时可能需要 4 到 5 小时才能完成。该旧版应用程序中没有 Abort 方法。我们将工作流程限制为一次只能创建 5 个实例,因此旧版应用 (dll) 可以在 5 个实例中运行。
  • 如果遗留应用程序无法中止它,您希望如何在代码中完成它?您将如何手动中止它?

标签: .net wcf workflow-foundation-4


【解决方案1】:

我看到的唯一选择是为可以在单独进程(例如控制台应用程序)中执行的旧版应用程序创建一个包装器。 形成工作流,然后您将触发包装应用程序,获取进程处理程序并最终在 WF 中止时终止它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2014-09-19
    相关资源
    最近更新 更多