저는 현재 15 분마다 자원 집약적 인 CRON을 실행하고있는 기존의 맞춤형 전자 상거래 PHP 애플리케이션을 만들고 있습니다.예정된 PHP 대체품
요점은 : 고객이 관심있는 제품에 대해 복잡한 필터를 설정하고 이러한 필터를 기반으로 이메일을 수신 할 수 있습니다. 매 15 분마다 실행되는 CRON은 마지막으로 실행 된 이후 나열된 모든 신제품을 확인하고 각 고객 필터와 비교합니다. 제품이 고객 필터와 일치하면 아마존 SES를 통해 이메일을 보냅니다.
지금까지이 방법은 잘 작동했지만 액티브 고객의 수가 급속히 증가함에 따라 CRON은 15 분마다 응용 프로그램의 눈에 띄는 성능 저하를 보이기 시작했습니다. 이는 1 ~ 2 분 동안 지속됩니다. 그것은 작동한다.
저는 제품을 나열 할 때마다 작업을 수행하는 것과 같이 서버에 부하를 분산시키는 데 도움이되는 다른 아이디어를 가지고 있었기 때문에 서버는 한 번에 여러 제품을 따라 잡을 필요가 없습니다.
이런 식으로 접근 할 때 일반적으로 가장 좋은 방법은 무엇입니까?
나는 Cron이 매 3 시간마다 만 실행할 수 있도록 시스템 설정이 항상 특정 시간에 일괄 처리되도록 보내는 것을 제외하고는 비슷한 것을했습니다. – xlordt
대기열 (예 : rabbitmq)을 사용하고 여러 서버에 부하를 분산시킵니다. – solarc