Azure 逻辑应用程序Sql连接器作为触发器触发多个线程

Azure 逻辑应用程序Sql连接器作为触发器触发多个线程,azure,azure-logic-apps,Azure,Azure Logic Apps,我在逻辑应用程序中使用Sql连接器作为触发器 操作1-每两分钟触发一次,可用数据查询为select count*from Foo,其中status=new,轮询数据查询 从foo中选择id、name、status,其中status=new; 行动2——处理数据; 操作3-使用另一个sql连接器更新foo表状态以完成; 从中可以看到,对于my db中的一个条目,启动了几个线程。这是正常的、缺陷的还是错误的应用程序流程?根据您的问题,我知道您放置了两个SQL连接器,一个用于轮询数据,另一个用于更新轮

我在逻辑应用程序中使用Sql连接器作为触发器

操作1-每两分钟触发一次,可用数据查询为select count*from Foo,其中status=new,轮询数据查询 从foo中选择id、name、status,其中status=new; 行动2——处理数据; 操作3-使用另一个sql连接器更新foo表状态以完成;
从中可以看到,对于my db中的一个条目,启动了几个线程。这是正常的、缺陷的还是错误的应用程序流程?

根据您的问题,我知道您放置了两个SQL连接器,一个用于轮询数据,另一个用于更新轮询的数据

如果上述情况意味着您走错了方向,则不应使用2个SQL连接器来完成您的工作。您应该只在轮询查询中编写update语句

例如:从foo中选择id、name、status,其中status=new;更新foo SET status='complete',其中status='new'
只需使用分号作为分隔符附加更新查询

我的目标是仅在成功完成完整逻辑应用程序后更新状态。我希望失败时状态保持为新状态,以便可以进行重试/重播。我已经看到一些例子按照您提到的做了,但是考虑到整个工作流不支持事务,这是不可取的。谢谢您的回复。@WadeB为什么不创建一个中间状态,如“进行中”。选择状态为“新建”且状态为“正在更新”的相同更新;如果您的工作流程失败,请再次将状态更改为新状态,否则会使其完整。我认为中间状态会很好。我已经考虑过了。我希望有人能解释为什么这么多线程同时启动。我想更好地理解内部设计,这样我就可以确保即使使用触发器中的read和update,也不会得到多余的操作。