【问题标题】:Workflow and exception handling工作流程和异常处理
【发布时间】:2009-10-16 10:59:06
【问题描述】:

在开发将执行大量工作项的自定义工作流程时,一个或多个工作项可能会在其例行程序中的任何时间失败,甚至可能引发异常。

在处理工作流管理器中的工作项引发的异常时,最佳实践是什么?

例如,工作流管理系统是否应该简单地记录错误然后直接死掉?工作流管理器是否应该简单地记录异常并继续执行其他工作项?

【问题讨论】:

    标签: workflow exception


    【解决方案1】:

    我会说这是非常依赖上下文的。

    Pack parcel
    
    Dispatch parcel
    

    第 1 步的失败肯定不能再执行第 2 步吗?

    Check price with vendor A
    Check price with vendor B
    ...
    Check price with vendor Z
    
    Buy cheapest
    

    可能一些价格检查失败不应妨碍整体完成。

    我认为您至少需要启用

    Park this for human intervention
    

    Sorry your request could not be actioned. 
    

    但这变得非常棘手。您可能需要启用补偿(撤消以前的工作)。例如预订酒店,尝试预订航班 - 失败,嗯不足以中止我们还需要取消预订该酒店。

    您可能还需要启用

    That failed, I'll retry a little later.
    

    【讨论】:

    • 我同意您的 cmets,但是如果 single 项执行失败,工作流是否会失败?
    • 单项是什么意思?上面我的例子中的Pack Parcel是我对单个item的理解,我觉得说明flow不能完成?
    • 例如,一个可能有多个并发工作流项目同时执行,其中一个项目将指代仅一个实例(可能)与其他工​​作项目并行运行。
    • 分形问题然后:-) 这又是上下文相关的。我昨晚在看主厨。迷宫餐厅,几位平行的厨师,每人制作一盘食物。如果任何一条溪流生产出不合标准的菜肴,它就会被扔掉......其他溪流生产的所有其他菜肴也是如此!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多