open-source - 打开 Windows 工作流的替代方案

标签 open-source workflow workflow-foundation

预警 : 还有一些其他类似的问题,但没有完全回答问题(包括:Alternatives to Windows Workflow Foundation?Can anyone recommend a .Net open source alternative to Windows Workflow?)

我们正在开发一个基于事件的状态机系统,目前我们正在研究 Windows 工作流程,我们的系统需要低延迟来响应来自多种来源(xmpp、http、sms、电话、电子邮件等)的事件) 进入系统,具有可扩展性和弹性,最重要的是可定制。出于各种原因(和尽职调查),我正在寻找支持类似于 Windows Workflow Foundation 的功能的开放式工作流引擎(如果可能的话,还有更多功能),主要是(但如果有引擎不支持这并不重要) t 支持某些功能):

  • 长期运行任务的持久性,以及外部事件的任务恢复
  • 高性能、低延迟
  • 能够开发自定义操作
  • 动态指定工作流的能力
  • 追踪追踪

  • 我不受平台或语言的限制,我希望你们提供一些帮助和提示,以便我可以开始更仔细地研究引擎以及您对引擎的任何经验。

    保罗。

    最佳答案

    我邀请您检查Stateless此外,正如我的 SO 问题 can-anyone-recommend-a-net-open-source-alternative-to-windows-workflow 的答案中所建议的那样.实现长时间运行状态机的目标非常简单,因为您可以将状态的当前状态存储在数据库中,并在需要时重新同步状态机。考虑来自无状态站点的以下代码:

    Stateless has been designed with encapsulation within an ORM-ed domain model in mind. Some ORMs place requirements upon where mapped data may be stored. To this end, the StateMachine constructor can accept function arguments that will be used to read and write the state values:


    var stateMachine = new StateMachine<State, Trigger>(
        () => myState.Value,
        s => myState.Value = s);
    

    只需很少的努力,您就可以保留您的状态,然后稍后轻松地检索该状态。

    在动态更新工作流方面,如果您配置状态机,例如
    var stateMachine = new StateMachine<string, int>();
    

    并在 XML 中维护一个单独的状态和触发器文件,您可以通过遍历字符串 int 值对在运行时执行配置。

    关于open-source - 打开 Windows 工作流的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075481/

    相关文章:

    c# - 调用 GetService 后 WF DesignerView 为空

    open-source - Java 中的开源 mp4 多路复用器

    javascript - 用Typescript发布NPM软件包的正确方法

    .net - 开源 .Net POS 解决方案

    c# - 以松散耦合的方式公开 ILogger

    workflow - 从外部触发 Prefect 工作流程

    workflow - Rust 库开发工作流程

    请提供 Git 工作流程建议 : Where do I gitinit from when working with Concrete5 Packages?

    c# - 如何获取 ActivityContext 以获得 InArgument 的值

    .net - 如何在工作流基础 4.5 (VS2012) 中创建 .rules 文件