Larabel 대기열 프로세스 시간 초과 오류
난 라라벨에서php artisan queue:listen
큐잉된 작업을 실행합니다.이러한 작업 중 하나가 상당히 복잡하고 시간이 오래 걸리기 때문에 다음과 같은 오류가 발생합니다.
[Symfony\Component\Process\Exception\ProcessTimedOutException]
The process ""/usr/local/Cellar/php55/5.5.14/bin/php" artisan queue:work
--queue="QUEUE_URL" --delay=0 --memory=128 --sleep=3 --tries=0"
exceeded the timeout of 60 seconds.
내가 도망칠 수 있다는 걸 알아queue:listen
타임아웃 값은 임의로 높지만 실제로는 응답이 없는 프로세스가 있는 경우에는 타임아웃을 하고 싶기 때문에 이상적이지는 않습니다.나는 정기적으로 전화를 걸려고 했다.set_time_limit(60)
직장이 호출하는 함수에 포함되지만, 그것은 나의 문제를 해결하지 못했다.
온라인상에서 실마리를 찾았는데Symfony\Component\Process\Process->setTimeout(null)
그러나 프로세스 오브젝트에 액세스하는 방법을 알 수 없습니다.이렇게 하면 문제가 해결될지 알 수 없습니다.
어떤 도움이라도 주시면 감사하겠습니다.
추가 중--timeout=0
날 위해 일했어
업데이트: 따라서 전체 명령어는 다음과 같습니다.php artisan queue:listen --timeout=0
.
이게 도움이 됐으면 좋겠다.
많은 시간을 투자하고 난 후에 해결책을 얻었다.
작업 클래스에 아래 줄을 추가하면 작업을 crontab 항목에 넣어도 시간 초과 없이 작업이 실행됩니다.
public $timeout = 0;
이것은 Laravel v5.3에서 알려진 오류입니다.
이 문제를 해결하려면 v5.5로 업그레이드해야 합니다.
또 다른 방법은 여기에 설명된 소스 코드를 해킹하는 것입니다.
큐는 주로 백그라운드에서 실행되는 일괄 링크 메일 발송, Import 데이터 큐 작업 등을 수행하는 데 시간이 많이 걸리는 요구에 대해 수행됩니다.웹 앱 성능도 향상됩니다.타임아웃을 설정하지 않으면 기본 60초가 소요됩니다.타임아웃을 0으로 설정하면 요청이 완료되지 않을 때까지 무한 타임아웃이 계속 실행됩니다.타임아웃을 설정하려면 다음 명령을 실행해야 합니다: php artisan queue: listen --listen=0
다음은 공식 문서의 참조 링크입니다.https://laravel.com/docs/8.x/queues
언급URL : https://stackoverflow.com/questions/25877752/laravel-queue-process-timeout-error
'programing' 카테고리의 다른 글
JavaScript의 Date 컨스트럭터에서 month 인수의 범위는 왜0 ~ 11 인가요? (0) | 2023.01.02 |
---|---|
포스트 요청에서 JAX-RS 클라이언트의 응답 본문 읽기 (0) | 2023.01.02 |
Python이 git bash 명령줄에서 작동하지 않음 (0) | 2023.01.02 |
PHP 오류: 치명적인 오류: 상수 식에 잘못된 작업이 포함되어 있습니다. (0) | 2023.01.02 |
PHP로 외부 루프를 끊으려면 어떻게 해야 하나요? (0) | 2022.11.08 |