2016-09-27 3 views
0

laravel --queue 옵션과 reserved 열 (mysql 사용)과 약간 혼동을 느낍니다. laravel 문서로서
-1-가 언급되었다 :이 예에서 Laravel 큐 우선 순위 및 예약 됨

php artisan queue:listen --queue=high,low 

가 높은 큐의 작업이 항상 낮은 큐의 작업 상에 이동하기 전에 처리한다.

내가 high 개의 작업을 가지고 있고 low 개의 작업이 여러 개 있다고 가정 해 봅시다. 작업 high이 실행되고 60 초 후에 다시 대기열로 푸시 된 문제로 인해 발생합니다. 이 기간에 어떤 일이 일어 났습니까? 직업이 low 시작 되나요? 아니요?

2- queue:work --daemonqueue:listen과 똑같습니까? 나는 그것이 모든 일을 처리한다는 것을 의미합니까 listen은 무엇을합니까?

3은 무엇입니까? reserved은 무엇입니까?

답변

0
  1. 나는 단지 여기 추측 할 수 있지만, 나는 high 작업이 low 사람 전에 시도 할 것입니다 가정합니다. 따라서 작업자를 실행할 때 tries=3(or whatever) 플래그를 사용하거나 public $tries = 5;을 작업 클래스에 추가해야합니다. 또는 더 미세한 제어를 위해 InteractsWithQueue 특성을 활용할 수도 있습니다.

  2. 나중에 Laravel 버전은 queue:work 명령을 사용할 때 기본적으로 데몬 모드로 실행됩니다. 데몬 작업자 프로세스는 새로운 작업마다 전체 프레임 워크를 다시 시작할 필요가 없으므로 수명이 길고 작업이 더 빠릅니다. queue:listen 명령은 최신 (5.4) 버전 문서에도 설명되어 있지 않습니다. 이 명령으로 생성 된 작업자는 모든 작업 폴링 전에 다시 시작됩니다. 개인적으로, 나는 여전히 데몬 작업자를 실행할 때 메모리 문제가 있기 때문에 이것을 사용한다.

  3. 제가 알다시피,이 열은 특정 작업이 실행되기 시작한 시점을 표시하는 방법입니다. queue.php 구성 파일에서 연결이 작업을 다시 시도해야하는시기를 지정할 수 있습니다. 나는 연결이 reserved 열을보고 작업을 재 시도해야하는지 결정합니다.