无限循环调用getSiteRefreshInfo



大约 2 周前,我编写了一个实现添加站点帐户流程图的程序。

我在几天的时间里运行了多次,每次都运行良好。

然后我做了其他事情,大约一周后再次尝试运行上述程序。 现在它不起作用,而是在调用getSiteRefreshInfo(流程图左下角的循环)时进入了一个看似无限的循环。 在接下来的 3-4 天内,我尝试多次运行它,每次都进入一个循环。在我杀死程序之前,它循环了 20-30 分钟。 这与一周前使用完全相同的凭据正常工作的源代码完全相同。

每次"code"为0,"siteRefreshStatus"为"LOGIN_SUCCESS",根据流程图,这意味着我应该等待2-4秒,然后重复调用:

{
  "siteRefreshStatus": {
    "siteRefreshStatusId": 2,
    "siteRefreshStatus": "LOGIN_SUCCESS"
  },
  "siteRefreshMode": {
    "refreshModeId": 2,
    "refreshMode": "NORMAL"
  },
  "updateInitTime": 1418945894,
  "nextUpdate": 1418946794,
  "code": 0,
  "itemRefreshInfo": [
    {
      "memItemId": 10070147,
      "itemSuggestedFlow": {
        "suggestedFlowId": 2,
        "suggestedFlow": "REFRESH"
      },
      "errorCode": 405,
      "retryCount": 0
    }
  ],
  "noOfRetry": 0
}

我要传递给 addSiteAccount1 的帐户是美国运通信用卡帐户,这是我为此用户添加的唯一帐户(换句话说,这是唯一需要刷新的帐户)。 有一次,当程序处于循环状态时,我使用这些相同的凭据手动登录美国运通网站,我可以查看帐户,获取最近交易的列表等。 我意识到Yodlee可能使用与浏览器不同的界面,但这确实向我表明Amex网站已经启动并正常运行。

我尝试让循环运行 30 多分钟,看看发生了什么。 一个小时 55 分钟后,我得到了这个异常:

{
  "errorOccurred": "true",
  "exceptionType": "Unknown Exception Occurred",
  "referenceCode": "_022c5fa3-3933-4491-b390-1150d8b28ab3",
  "detailedMessage": "Technical Difficulty Processing Request"
}

在接下来的 3-4 天内,我尝试多次运行该程序,每次都进入循环。 然后它突然又开始正常运行,目前仍在正常运行。 请注意,完全相同的源代码和凭据正确运行了一段时间,然后进入循环 3-4 天,现在再次正常运行。

我对此有两个问题:

1)我应该如何退出这样的循环? 我解释API流程图的方式是,我应该循环,直到我得到一个"code"或"siteRefreshStatus"的值,告诉我退出循环。 我可以轻松实现自己的计时器,但我不知道在所有情况下什么时间值都合适。 Yodlee 能够更好地知道循环是否持续了太长时间,因此我希望在这种情况下会像REFRESH_TIMED_OUT一样返回。

2) 如果我们在生产环境中运行此代码,我们将在至少 3 天内无法刷新此客户的信息,这对于我们的应用程序来说将是一段非常长的时间。 在这种情况下,我们还能尝试什么吗?

谢谢!!!

我认为您遇到了不同的问题:您的itemRefreshInfo有错误代码405,此页面显示为:"更新请求已取消(405):您的帐户未更新,因为您取消了请求。

我相信您以某种方式取消了您的请求。

相关内容

  • 没有找到相关文章

最新更新