찾다

 >  Q&A  >  본문

laravel5.1 비동기 큐 문제

1. config 폴더의 대기열에 있는 구성을 다음과 같이 수정합니다. 으아악

2. 대기열 테이블 만들기

php artisan 대기열:table

php artisan migration

3. 대기열 작업 클래스 만들기

php artisan make:job CollectionBook

4. 작업을 대기열로 푸시하세요

으아악

5. 백그라운드 모니터링

php artisan queue:work --queue=collectionbook --daemon --sleep=3 --tries=3

푸시 작업 실행 페이지

대기열이 동기적으로 실행되고 대기열 작업 테이블에 기록되지 않는 것을 발견했습니다. 이 문제를 해결하는 방법은 무엇입니까?


1층 학생들의 답변 덕분에 위의 문제가 해결되었습니다. 이제 두 번째 문제가 남았습니다

.

웹사이트 루트 디렉터리(/home/wwwroot/kshuba/)에서 실행

php artisan queue:work --queue=collectionbook --daemon --sleep=3 --tries=3

데이터베이스의 대기열 작업이 소비됩니다

이 때 ps artisan을 확인하면 다음과 같은 프로세스를 볼 수 있습니다.

root 2287 2144 9 18:30 pts/0 00:00:02 php artisan queue:work --queue=collectionbook --daemon --sleep=3 --tries=3

그런데 SSH 클라이언트 연결을 끊으니 프로세스가 사라진 걸 발견했어요

이때 Supervisor를 이용해서 프로세스를 모니터링했어요
으아악

감독 시작 및 쿼리

결과는 모니터링

laravel-worker-collectionbook 실행 중 pid 2271, 가동 시간 0:00:02

ps artisan은 이 과정을 다음과 같이 볼 것입니다:

root 2300 2144 9 18:30 pts/0 00:00:02 php /home/wwwroot/kshuba/artisan 대기열:work --queue=collectionbook --daemon --sleep=3 --tries=3

문제는 쿼리 데이터베이스의 큐 작업이 소비되지 않았다는 것입니다

게다가 서버의 루트 디렉터리에서 실행되는 경우

php /home/wwwroot/kshuba/artisan 대기열:작업 --queue=collectionbook --daemon --sleep=3 --tries=3

대기열 작업도 사용할 수 없습니다.

감독자의 명령을 다음과 같이 변경해 보세요.

php artisan queue:work --queue=collectionbook --sleep=3 --tries=3 --daemon

감독자> 상태가 다음과 같은 메시지를 표시하는 것으로 나타났습니다. BACKOFF가 너무 빨리 종료되었습니다(프로세스 로그에 세부 정보가 있을 수 있음)

모니터링을 시작할 수 없습니다. 해결 방법은 무엇입니까?


내 구성이 누락되었습니다. 문제가 해결되었습니다!

给我你的怀抱给我你的怀抱2737일 전845

모든 응답(1)나는 대답할 것이다

  • 为情所困

    为情所困2017-05-16 16:55:47

    .env가 구성되어 있나요?

    회신하다
    0
  • 취소회신하다