2014-07-23 3 views
1

NGINX에서 MySQL 데이터베이스로 Laravel 4.2 응용 프로그램을 만들고 있습니다. 대기열을 사용하여 주어진 시간에 CPU 사용량을 줄이기위한 옵션을 연구하려고합니다.PHP 숙련공 대기 중 메모리 한도에 도달했을 때 Beanstalkd로 청취

대기중인 작업을 일정 수준의 메모리 사용 상태로 유지하고 싶습니다.

하지만 실제로 실행되는 작업이 --memory 매개 변수 php artisan queue:listen (또는 작업)으로 설정된 한도를 초과하면 실제로 어떤 일이 발생하는지 이해할 수 없습니다.

나는 내 dev 터미널에서

php artisan -h queue:work

를 실행하는 경우, 단순히

The memory limit in megabytes (default: 128)

를 정의하지만, 그 작업이 그 한계를 깰하려고하면 무슨 일이 일어날 지 말을하지 않습니다. 내가 생각

이 다른 일이 일어날 수 있습니다

1)이 실패하고 나의 실패 큐 테이블

2에 결국 큐의 원인이됩니다) 그냥에서 처리 능력의 양을 스로틀 어떻게 든 것 서버가 작업을 수행하기 위해

나는 그것이 2 번 이길 기대하고있다. 나 맞아?

답변

2

아니요. 코드를 변경하는 데 어떤 마법도 적용 할 수 없습니다. 작업이 완료되면 안전하게 작업을 종료하고 새로운 작업자와 함께 다시 시작할 수 있습니다.

일반적으로 memory_limit = -1 (필요에 따라)으로 명령 줄 작업을 실행하면 유용 할 수 있지만 다른 프로세스가이를 사용할 수 있도록 복구 할 수 있어야합니다.

참조 : \ Illuminate \ Queue \ Listener :: runProcess (Process $ process, $ memory);

+0

감사합니다. –