분산 타이머 서비스를 찾고 있습니다. 다중 원격 클라이언트 서비스는 지정된 간격 후에 콜백 (REST API를 통해)에 등록 할 수 있어야합니다. 간격의 길이는 1 분이 될 수 있습니다. 나는 약 1 분의 오차 마진으로 살 수있다. 콜백 수는 현재 100,000 개까지 올라갈 수 있지만 나중에 확장해야합니다. 나는 Quartz
과 같은 스케줄러를보고 있었지만 문제에 대한 적합성이 확실하지 않습니다. Quartz
을 사용하면 콜백 요청을 DB에 저장하고 100,000 행의 지연된 요청을 매분마다 폴링해야합니다. 그 규모가 확실하지 않습니다. 주변에 상자 솔루션이 있습니까? 그렇지 않으면 건물을 짓기 위해 어떻게해야합니까? 답변으로분산 타이머 서비스
1
A
답변
0
게시 내가 생각하는
하나 더 많은 옵션을 언급 질수 있기 때문에 메시지 큐입니다. 예정된 지연 시간을 가진 메시지를 게시하여 소비자가 지연 후 소비 할 수 있도록합니다.
지연 큐는 지정된 시간 (초)에 대한 큐에 새 메시지의 전달을 연기 할 수 있습니다. 지연 대기열을 만들면 대기열에 보내는 모든 메시지는 지연 기간 동안 소비자에게 표시되지 않습니다. DelaySeconds 특성을 0에서 900 (15 분) 사이의 값으로 설정하여 CreateQueue 동작을 사용하여 지연 큐를 만들 수 있습니다. SetQueueAttributes 액션을 사용하여 대기열의 DelaySeconds 속성을 설정하여 기존 대기열을 지연 대기열로 변경할 수도 있습니다.
Scheduling Messages with RabbitMQ
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/
사용자가 입력 한 X-지연 메시지 교환을 선언하고 밀리하는 지연 시간을 나타내는 사용자 지정 헤더 X-지연 메시지를 게시 할 메시지. x-delay milliseconds 후에 해당 큐에 메시지가 배달됩니다.