2016-09-15 4 views
1

나는 다른 고객사의 API를 통해 애플리케이션에 데이터를 가져 오기 위해 애플리케이션 고객과 관련된 laravel 프로젝트를 진행 중이다.laravel 작업을 위해 여러 스레드를 처리하는 방법은 무엇입니까?

나는 가져올 필요가있는 각 종류의 데이터에 대한 작업을 할 생각입니다. 그러나 이는 많은 고객이 대기열 작업자가해야 할 일자리를 늘릴 것이라는 것을 의미합니다. 즉, 고객이 특정 종류의 데이터를 가져 오는 하나의 직업을 가져 오기 위해 일자리를 마련한 경우 다른 고객이 일자리를 마련한 경우 동일한 종류의 데이터를 가져 오려면 첫 번째 고객의 작업이 완료 될 때까지 기다린 다음 두 번째 고객의 작업이 대기열에서 작동하기 시작해야합니다. 그러나 우리는 서로를 기다리는 100 명의 고객을 가질 수 없습니다.

그래서 이러한 종류의 수입에 대해 가능한 해결책은 무엇입니까? 해시 된 큐에 작업을 넣고 그 큐를 호출해야합니까? 아니면 이것을 처리 할 수있는 더 좋은 방법이 있습니까? 고객이 비동기 적으로 다양한 API에서 데이터를 가져 오는 응용 프로그램으로 작업 한 적이 있습니까? 그리고 그것을 가장 잘 처리하는 방법.

답변

0

올바른 방향으로 가리 킵니다. Laravel과 같은 대기열 작업자가 필요하지만 비동기 드라이버를 선택해야합니다. 빌트인 드라이버를 사용하거나 RabbitMQ과 같은 자체 큐 서버를 설치하십시오.

https://github.com/vladimir-yuldashev/laravel-queue-rabbitmq

이 뜻은 모든 고객의 요청이 각각에 대해 비동기 큐에 별도의 스레드를 얻을 수 있습니다 : 여기 Laravel 5 RabbitMQ 드라이버에 좋은 패키지입니다. 이 큐 시스템은 매우 효율적으로 작동하며 비동기 PHP라고 말할 수 있습니다. PHP 코드 내에서 비동기 적으로 사용하려면 비동기 요청 (및 응용 프로그램의 PHP 코드/서버 측에서 전체 서비스 제공)을 제공하는 Guzzle HTTP 패키지를 사용할 수 있습니다.