2016-07-10 5 views
1

Laravel 대기열이 비동기입니까, 아니면 동기화입니까? 예를 들어, 내가 2 개의 작업을 추가한다면, 어떻게 실행될 것인가?Laravel 큐에서 어떤 순서로 작업이 실행됩니까?

1) 동기화 :

job #1 started 
job #1 finished 
job #2 started 
job #2 finished 

2) 또는 비동기 :이 동기화, 내가 어떻게 (같은) 2 비동기 그것을 만들 수 있다면

job #1 started 
job # 2 started 
job #1 finished 
job #2 finished 

답변

-1

PHP 비동기 아니다 언어. 코드가 시작되면 스크립트의 끝까지 줄 단위로 실행됩니다.

비동기 작업을 시뮬레이트하려면 shell_exec 또는 exec 중 하나를 사용하여 여러 프로세스를 시작할 수 있습니다. krakjoe의 pthreads이라는 PHP 확장 모듈도 있습니다.

2

Laravel의 대기열 시스템은 여러 작업자를 허용하므로 작업을 병렬로 실행할 수 있지만 각 작업자는 작업을 동 기적으로 할당합니다. 한 명의 작업자 만 실행중인 경우 한 번에 하나의 작업 만 처리합니다.

대기열을 원하는 순서대로 처리하는 가장 쉬운 방법은 여러 개의 대기열 이름 (예 : "높음", "낮음", "보통"등의 순서대로 처리해야합니다. 예 :

php artisan queue:listen --queue=high,low 
관련 문제