java - 请求一个地址,如果失败,则隔30秒请求一次,直到失败10次,就不调用了,如何实现?
PHPz
PHPz 2017-04-17 16:28:34
0
7
682

目前想到的方法是,数据库记录请求的信息(包含请求地址,和错误次数,是否成功),然后用quartz每隔30秒筛选一次数据库没有成功的回调,执行回调。但是我感觉一直跑着定时任务会不会很浪费。

想知道有没有更好的解决方案。

PHPz
PHPz

学习是最好的投资!

모든 응답(7)
刘奇

이 요청이 실패할 경우 URL http 코드를 판단해야 합니다

黄舟

그렇군요. 이보다 더 좋은 방법은 생각나지 않습니다

Ty80

사실 제목에서 이미 구현 내용을 추상적으로 설명하고 있습니다.
문제는 이 요구 사항이 어떤 문제를 해결하는가입니다.

左手右手慢动作

요청마다 10번 반복합니다. 성공하면 데이터베이스를 사용해야 합니까?
실패 판단 방법:
시간 초과를 30초로 설정합니다. 30초 동안 응답이 없으면 실패로 간주됩니다. 반환된 httpCode 및 반환된 데이터 콘텐츠를 기반으로 직접 판단할 수 있습니다.
요청 예약 방법 30초마다:
모든 요청 기록 판정이 실패한 경우 현재 시간과 요청 시작 시간이 30초 차이가 나는지 확인하고, 30초가 되면 바로 루프 요청을 수행하고, 그렇지 않으면 Thread.sleep(30-interval)을 사용하여 Sleep을 실행합니다. 일어나서 계속 물어보세요.


일괄 작업을 수행하려면 Quartz를 사용하면 됩니다. Quartz를 사용하지 않으려면 ScheduledThreadPoolExecutor를 사용하는 것이 좋습니다.
복잡성을 줄이고 싶다면 이것을 사용할 수 있습니다. 단일 작업을 다시 시도하는 방법입니다.

Ty80

JQuery의 AJAX 비동기 요청을 사용하여 프런트 엔드에서도 구현할 수 있습니다

으아악
刘奇

Java에도 자체 타이머가 있습니다. 타이머를 사용해 보세요

迷茫

비즈니스 시나리오가 어떤지 알고 싶습니다. 10번 반복하면 성공 여부를 판단하여 중단됩니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿