Cron만을 사용하여 작업 시스템을 구현하는 방법은 무엇입니까?

Cron만을 사용하여 작업 시스템을 구현하는 방법은 무엇입니까?

엔드포인트가 특히 느린 PHP 웹 애플리케이션이 있는데 복잡한 함수 호출로 인해 발생한 것으로 진단했습니다.

응답이 반환되기 전에 함수 호출이 완료되는지 여부는 중요하지 않습니다. 즉, 함수 호출을 대기열에 넣고 작업자가 실행할 수 있습니다. 하지만 10초 이내에 실행되어야 합니다.

내가 겪고 있는 문제는 이 웹 애플리케이션이 실행되는 인프라를 어떤 식으로든 변경할 수 없다는 것입니다. 이는 이상적인 것과는 거리가 멀지만 불변의 비즈니스 요구 사항입니다. 제가 사용할 수 있는 것은 Cron, MySQL, Redis, Apache, PHP뿐입니다.

Cron만을 사용하여 작업 시스템을 구현하는 방법은 무엇입니까?

Redis 저장 함수 호출 대기열을 사용하는 것이 좋은 시작이라고 확신합니다. 작업자 스크립트를 시작하기 위해 Supervisor를 대체하기 위해 Cron을 사용할 수 있습니까? Cronjob이 겹치지 않도록 클러스터링과 결합할 수 있습니까?

제가 가진 또 다른 아이디어는 Cron을 사용하여 매초마다 작업자 스크립트를 실행하는 것이었습니다. 그러나 Cron은 분보다 작은 단위를 지원하지 않으므로 이를 달성하기 위해 일종의 루프를 수행하는 Bash 스크립트를 작성해야 했습니다.

누구라도 더 강력하고 똑똑하며 입증된 아이디어가 있다면 듣고 싶습니다. 감사해요.

관련 정보