2014-02-13 6 views
0

2 ~ 3 초 간격으로 여러 어댑터 호출을 시작한 경우 백그라운드에서 실행중인 첫 번째 호출을 중지하는 방법? 내가 A-Adapter를 호출하고 을 내가 밀리 초 안에 몇 가지 작은 데이터를 제공 B-Adapter를 호출하면 성공 후하지만 2-3초의 간격과 동시에 일부 데이터를 제공하는 :IBM Worklight - 6.1 두 번째 어댑터 호출을 할 때 첫 번째 어댑터 호출을 중지하는 방법

말할 수 있습니다.

그러나 여전히 첫 번째 어댑터 호출이 시간이 걸리고 4 초 후에 응답하거나 시간 초과되었다고 가정합니다. 이제 우리는 B-Adapter 성공 후 A-Adapter의 성공 또는 실패를 얻고 있습니다. 필요한 때마다

지금 내 의심의 여지가

우리가 중지 또는 시간의 어느 시점에서 첫 번째 어댑터 호출을 취소 할 수있다?

작업을 수행하기위한 작업이 있습니까?

우리가 직면 한 이슈는 아래에 주어진 중요한 문제입니다. 내가 로그인 성공 또는 실패를 제공 로그인 어댑터를 호출하고 그것을 복용

시간의하자 5 분 말 :

말할 수 있습니다. 그래서 내가 애플 리케이션을 닫고 애플리케이션을 다시 시작했습니다. 나는 다시 로그인을 클릭하고 성공적인 로그인을 얻었으며 지금은 앱 안에 있고 어떤 일을하고 있습니다. 이제이 시점에서 시간이 걸리는 로그인 어댑터의 실패 응답을 얻고 있습니다.

답변

0

귀하의 직접적인 질문에 대한 대답은 진행중인 어댑터 프로 시저 호출이 완료되기 전에 종료 할 수있는 API가 없습니다. 어댑터 프로 시저가 호출되면 성공, 실패 또는 시간 초과 중 하나가되어야합니다.

B- 어댑터 이후 A- 어댑터 마무리의 가능성에 대해 논의한 경우, 발생할 가능성이있는 상황에 대한 관찰로 의도했는지 또는 문제 또는 버그로 보는 지 알 수 없었습니다. - 후자의 경우, 어댑터 프로 시저 호출이 완전히 비동기이기 때문에 어댑터 프로 시저가 호출 된 순서대로 완료된다는 보장이 없으며 그러한 보증이 의도되지 않습니다.

설명한 문제를 해결하기 위해 invocationContext를 사용하여 성공 또는 실패 콜백이 발생하면 이것이 예상되는 어댑터 프로 시저 호출에 해당하는지 확인하는 것이 좋습니다. 응답을 보내고 그렇지 않으면 결과를 무시합니다. 자세한 내용은 the options Object을 설명하는 워크 라이트 정보 센터 섹션을 참조하십시오.

어댑터 프로 시저의 일반적인 "정상"응답 시간이 작은 경우 프로 시저 호출 시간 제한을 약간의 시간으로 설정하여이 문제를 완화 할 수도 있습니다. 예를 들어, 어댑터 프로 시저가 정상적으로 약 4 초 내에 완료되면 15 초로 제한 시간을 설정할 수 있습니다. 어댑터 프로 시저가이 시간이 지나면 끝나지 않으면 무언가가 잘못되었을 수도 있습니다 (어쩌면 백엔드 시스템에서 데이터를 가져 오는 것이 멈추거나 부서 지거나 또는 이와 비슷한 일이 발생합니다.) 결국에는 결국 실패 할 것이므로 시간 초과 오류를 반환하고 포기하도록하십시오. 그렇게하면 몇 분 후에 결국 실패 할 때 어떤 일이 일어나는지 걱정할 필요가 없습니다 ... 과거에 another StackOverflow question이 물었습니다.이 시간 제한을 변경하는 방법에 대해 설명했습니다.

관련 문제