더 빠르고 가벼운 HTTP 응답을 위해 비동기 적으로 전자 메일을 보내려고하지만 많은 새로운 개념으로 어려움을 겪고 있습니다.전자 메일을 비동기 적으로 보내기 : 스풀, 대기열 및 cronjob/데몬
예를 들어, 설명서에서는 spool에 대해 설명합니다. 그것은 파일로 스풀을 사용하고, 명령으로 이메일을 보내야한다고 말합니다. 하지만 어떻게 그 명령을 실행해야합니까? 1 분마다 해당 명령을 실행하도록 cronjob을 설정하면 (최소 cron
에서 사용 가능), 사용자는 전자 메일을 보내기 위해 평균 30 초 동안 기다려야합니다 (예 : 등록 전자 메일).
그래서 대기열을 대신 사용하려고 생각했습니다. 이미지 처리 (예 : 축소판 만들기)에 이미 RabbitMQBundle을 사용하고 있습니다. 하지만 이건 주기적으로 만 사용하기 때문에 cronjob에서 소모됩니다.
아마도 새 메시지가 전자 메일 대기열에 도착하여 최대한 빨리 배달되기를 기다리는 daemon을 만들어야합니까?
30 초 지연의 문제점은 무엇입니까? 그것은 당신이 말한 것과 정확히 같습니다 : cron 작업은 1 분마다 명령을 실행하고, 명령 자체가 대기열을 정교하게 만들 것입니다. – gremo
@Gremo 문제는 서버에로드가 많지 않으면 등록 이메일을 즉시 보낼 수 있어야한다는 것입니다. 이미지 처리에서도 마찬가지입니다. 사용자의 이미지 업로드를 수락한다고 상상해보십시오. 각 제출에 대해 30 초 (1 분은 말할 것도 없음) 기다리는 것이 사용자 경험을 해칩니다. – ChocoDeveloper
그럼 내가 생각하는 악마는 필요 없어. PHP 자체에서 즉시 비동기 적으로 명령을 스풀링하고 실행할 수 있습니다. – gremo