2014-12-29 3 views
0

약 2 주 전 나는 Add Site Account flow chart을 구현하는 프로그램을 작성했습니다.무한 루프 호출 getSiteRefreshInfo

몇 일 동안 여러 번 실행했는데 매번 잘 작동했습니다.

그런 다음 다른 일을하고 약 일주일 후 위의 프로그램을 다시 실행 해 보았습니다. 이제는 작동하지 않았지만 getSiteRefreshInfo (순환 차트의 왼쪽 아래 모서리에있는 루프) 호출에서 무한 루프가 발생했습니다. 다음 3-4 일 동안 여러 번 실행 해 보았습니다. 매번 루프에 넣습니다. 내가 프로그램을 죽이기 전에 20-30 분 동안 반복했다. 정확하게 똑같은 자격 증명을 사용하여 정확하게 일주일 전에 올바르게 작동 한 소스 코드입니다.

때마다 "코드"0, 그리고 "siteRefreshStatus는"순서도에 따라 I 2-4 초 후에 호출 반복해야 의미 "LOGIN_SUCCESS"이었다

{ 
    "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 
} 

계정 I을 addSiteAccount1에 전달하는 것은 American Express 신용 카드 계정이며이 사용자에 대해 내가 추가 한 유일한 계정입니다 (즉, 새로 고침해야하는 유일한 계정 임). 일단 프로그램이 반복되는 동안, 나는이 같은 자격 증명을 사용하여 American Express 웹 사이트에 수동으로 로그온했으며, 계정을보고 최근 거래 목록을 얻을 수있었습니다. 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) 어떻게해야 이러한 루프에서 I 종료? API 플로우 차트를 해석하는 방법은 루프를 종료하라는 "code"또는 "siteRefreshStatus"값을 얻을 때까지 반복해야한다는 것입니다. 내 자신의 타이머를 쉽게 구현할 수는 있지만 모든 시간 값이 적절한 지 알 수 없습니다. Yodlee는 루프가 너무 오래 지속되었는지 알기에 더 좋은 위치에 있으므로이 경우 REFRESH_TIMED_OUT과 같은 수익을 기대합니다.

2) 제작 과정에서이 코드를 실행 한 경우 적어도 3 일 동안이 고객의 정보를 새로 고칠 수 없었습니다.이 응용 프로그램은 매우 오랜 시간이 걸릴 것입니다. 이 경우 우리가 시도 할 수있는 것이 있습니까?

감사합니다 !!!

답변

0

itemRefreshInfo에 오류 코드 405가 있는데, this page은 다음과 같습니다. "업데이트 요청이 취소됨 (405) : 요청을 취소했기 때문에 계정이 업데이트되지 않았습니다."

나는 어떻게 든 요청을 취소한다고 생각합니다.