queue : work --daemon과 queue : listen의 차이점은 무엇입니까?
오프라인 작업 서버를 설정하고 있습니다. 나는 설명서를 읽은하지만, 난 여전히 정말 두 명령의 차이점을 볼 수 없습니다 : artisan queue:work --daemon
와 artisan queue:listen
. 데몬을 실행하려면 어떤 명령을 사용해야합니까?
수정 업데이트 2017-04-07 :
이제 큐를 실행하는 세 가지 방법이 있습니다.
queue:work
-이것은 새로운 "데몬"프로세스입니다 (플래그가 더 이상 필요하지 않음). 프레임 워크는 "한 번"실행 된 다음 작업을 계속 반복합니다. 이것은 무기한으로 계속됩니다.queue:listen
프레임 워크가 전체 시간 동안 유지되기 때문에 메모리 / cpu를 덜 사용합니다 . 또한를 사용queue:restart
하여 패치 중에 푸시 한 코드 변경 사항을 대기열에 업데이트하도록 해야합니다 .queue:work --once
-이렇게하면 프레임 워크가 실행되고 하나의 작업을 처리 한 다음 종료됩니다. 개발 중 테스트 등에 유용합니다.queue:listen
-이것은 모든주기에서 프레임 워크를 실행하고 하나의 작업을 처리 한 다음 완전히 종료 한 다음 프레임 워크를 다시 실행하고 무한 반복합니다. 즉, 각 작업이 처리 된 후 모든 메모리 / 프로세스가 해제됩니다. 메모리 누수가 있으면queue:work
시도해보십시오.
--daemon
플래그는 더 이상 이러한 명령에 영향을주지 않습니다.
원래 답변 :
나열된 두 가지 문제가 있습니다.
이 artisan queue:work
과artisan queue:listen
queue:work
대기열에서 다음 작업을 간단히 꺼내서 해당 작업 만 처리합니다. 이것은 하나의 큐 명령이 처리되면 명령 프롬프트로 돌아가는 '일회성'명령입니다.queue:listen
큐를 듣고 수신 한 큐 명령을 계속 처리합니다. 중지 할 때까지 무기한 계속 실행됩니다.
Laravel> = 4.2에는 --daemon
명령이 추가되었습니다. 작동 방식은 모든 대기열이 처리 된 후 전체 프레임 워크를 재부팅하는 대신 대기열을 직접 계속 실행하는 것입니다. 이것은 대기열의 메모리 및 CPU 요구 사항 을 크게 줄이는 선택적 명령입니다 .
--daemon
명령 의 중요한 점 은 애플리케이션을 업그레이드 할 때 특별히를 사용하여 큐를 다시 시작해야한다는 것입니다 queue:restart
. 그렇지 않으면 큐에 메모리에 이전 코드가 남아 있기 때문에 모든 종류의 이상한 오류가 발생할 수 있습니다.
따라서 " 데몬을 실행하기 위해 어떤 명령을 사용해야합니까? "라는 질문에 답하려면 거의 항상queue:work --daemon
변경 되었지만 문서에 언급되지 않았습니다.
--daemon Run the worker in daemon mode (Deprecated)
이제 기본적 php artisan queue:work
으로 데몬 모드에서 실행됩니다.
그래서 queue:work
지금 다시 부팅 프레임 워크없이 처리 작업을 계속
한 번 실행하려면 명령은 다음과 같습니다.
php artisan queue:work --once
가장 중요한 차이점은 즉 queue:work --daemon
각 프레임 워크를 다시 시작하지 않고 작업 만 queue:listen
수행합니다 . 실제로 listen
각 작업에 대해 완전히 새로운 Laravel 프로세스를 시작합니다.
직접 해보십시오 : 2 개의 터미널을 열고 work --daemon
한쪽과 listen
다른 쪽에서 실행 하십시오. work
창보다 훨씬 빠르기 때문에 작업을 실행합니다 listen
.
Laravel 5.7 --stop-when-empty
부터 새로운 옵션 이 queue:work
명령 에 추가되었습니다 . 이 옵션을 사용하면 현재 대기열이 비워 질 때까지 처리 된 다음 명령이 종료됩니다.
문서 에 따르면 :
--stop-when-empty 옵션을 사용하여 작업자에게 모든 작업을 처리 한 다음 정상적으로 종료하도록 지시 할 수 있습니다. 이 옵션은 대기열이 비워진 후 컨테이너를 종료하려는 경우 Docker 컨테이너 내에서 Laravel 대기열을 작업 할 때 유용 할 수 있습니다.
php artisan queue:work --stop-when-empty
'Programing' 카테고리의 다른 글
char + char = int? (0) | 2020.11.27 |
---|---|
#if debug-> #if myOwnConfig? (0) | 2020.11.27 |
렌더링 중 예외 발생 : 이진 XML 파일 줄 # -1 : 오류 팽창 클래스 (0) | 2020.11.27 |
RGB 색상을 HSV로 변경하는 방법은 무엇입니까? (0) | 2020.11.27 |
WPF에서 전체 TreeViewItem 줄 강조 표시 (0) | 2020.11.27 |