Laravel, 데이터베이스 대기열을 분당 1개의 이메일로 제한
P粉310931198
P粉310931198 2023-12-13 14:53:22
0
1
587

내 앱은 시간당 200개의 이메일로 제한되는 공유 호스팅 플랫폼에서 호스팅됩니다.

내 애플리케이션이 Database Connection Driver를 실행 중이고 작업 테이블에 3000개의 작업이 있습니다.

호스팅에 문제가 없는지 확인하기 위해 이 대기열을 30초 또는 1분마다 1개의 이메일만 보내도록 제한하고 싶습니다.

연구: 이 튜토리얼의 지연, 이 질문의 속도 제한을 시도했지만 응답이 없습니다. 이 laravel 문서의 지연 작업을 시도했지만 아무것도 작동하지 않았습니다.

질문: redis 대기열 연결처럼 데이터베이스 대기열 연결에서 대기열을 제한할 수 있는 방법이 있습니까? 예:

으아악

내 구현: 첫 번째 작업만 지연하고 다른 작업은 즉시 보냅니다

으아악

**ENV 파일:**

// Allow only 1 email every 30 seconds
Redis::throttle('any_key')->allow(1)->every(30)->then(function () {
    Mail::to($this->email)->send(new NotificationEmail($this->data) );
    Log::info('Emailed order ' . $this->email);
}, function () {
    // Could not obtain lock; this job will be re-queued
    return $this->release(2);
});

P粉310931198
P粉310931198

모든 응답(1)
P粉448130258

php artisanqueue:listen을 실행해 보셨나요? 그렇다면 아래 코드를 확인해 보세요. 아마도 도움이 될 것입니다

컨트롤러 내:

으아아아

SendMailJob 클래스

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!