逻辑应用程序是否会重试再次插入失败的记录?

时间:2017-07-24 14:07:49

标签: azure salesforce azure-sql-database azure-logic-apps

我有一个逻辑应用程序,只要在Salesforce CRM中创建记录就会触发,之后我会有SQL服务器插入操作,它会将salesforce CRM记录插入到azure SQL数据库中。

我的问题是,如果我的Azure SQL数据库已关闭或无法连接。失败的记录会发生什么?逻辑应用程序是否会重试再次插入失败的记录?

2 个答案:

答案 0 :(得分:2)

默认不是。

但是您有Do-Until Loops,您可以在其中定义重复操作的条件。在您的情况下,您可以简单地评估SQL插入的结果。

我使用例如以下表达式来对REST API进行可靠的调用:

        "GetBerlinDataReliable": {
            "actions": {
                "GetBerlinData": {
                    "inputs": {
                        "method": "GET",
                        "uri": "http://my.rest.api/path?query"
                    },
                    "runAfter": {},
                    "type": "Http"
                }
            },
            "expression": "@and(equals(outputs('GetBerlinData').statusCode, 200),greaterOrEquals(body('GetBerlinData').query?.count, 1))",
            "limit": {
                "count": 100,
                "timeout": "PT30M"
            },
            "runAfter": {},
            "type": "Until"
        },

答案 1 :(得分:2)

这取决于来自此API的HTTP代码是否可重试。如果是,我们将默认重试4次,间隔30秒(您也可以在给定动作的设置中更改)。如果不是,则不会重试。

有多种方法可以处理错误,具体取决于您希望错误发生的方式和方式:do-until如上所述是一种方式,或者您考虑尝试(插入)-catch(保存到blob)和有另一个Logic Apps来检查blob并重试插入。