代码之家  ›  专栏  ›  技术社区  ›  Sandeep Thomas

在Azure功能应用程序中缓存或临时持有对象,以在每次执行中交叉检查状态

  •  0
  • Sandeep Thomas  · 技术社区  · 4 年前

    我正在用C#开发一个Azure功能应用程序,该应用程序旨在控制其他一些微服务的执行。 enter image description here

    因此,控制器函数使用一个配置来决定运行哪个微服务。它看起来像这样

    {
        "executionSequence": [
            {
                "sequence": 1,
                "service": "service1endpoint"
            },
            {
                "sequence": 2,
                "service": "service3endpoint"
            },
            {
                "sequence": 3,
                "service": "service3endpoint"
            }
        ]
    }
    

    基于该配置,控制器决定服务需要运行的顺序。 当每个服务完成其操作时,它会向服务总线发布一条消息,表示其已完成其部分。

    {
        "serviceName":"service1",
        "status":"completed"
    }
    

    它触发控制器的队列触发功能,执行序列中的下一项。

    按照设计,这些都很好用。但我感到困惑的是,在某些情况下,service1和service2需要并行运行。当两者都完成时,只有服务3需要开火。

    因此,在这种情况下,服务1和2的顺序将是1。所以控制器将同时发射1和2。

    因此,如果服务1首先完成,它将把消息发布到队列中并触发控制器。但是对于触发服务3,它需要服务2也应该完成。

    我们如何处理这种情况。或者除了DB之外,还有其他方式吗?标记1已经完成,还需要完成2,然后再标记消防部门3

    请分享你的想法

    **Redis缓存未为我们启用

    0 回复  |  直到 4 年前
    推荐文章