2014-12-05 9 views
0

누군가 Laravel 4 대기열 시스템을 이해하는 데 도움이되는지 궁금합니다.Laravel 4 대기열 사용

CSV 파일의 백그라운드 처리에 사용하여 CSV 파일을 업로드하고 백그라운드에서 수행해야하는 작업을 수행하는 동안 시스템을 계속 사용할 수 있지만 보이지 않습니다. 일. 내 QueueController에서

// Push the import into the queue 
Queue::push('[email protected]', array('filename' => $filename, 'fileext' => $fileExt)); 

// Everything sorted, return success 
return Response::json('success', 200); 

는 CSV 데이터를 가져올 수있는 모든 논리입니다 : 내 컨트롤러에서

난 다음 있습니다.

내 문제는 위의 코드를 사용하여 큐에 넣을 때 응답이 완료 될 때까지 가져 오기가 완료 될 때까지 기다리는 것입니다. CSV가 상당히 크기 때문에 성공 응답을 받기까지 몇 분이 걸립니다.

사용자가 대기열에 무엇인가를 넣으면 사용자가 계속 시스템을 사용하는 동안 백그라운드에서 대기하게됩니다.

누군가 나에게 잘못 가고 어쩌면 내가해야 할 일을 도와 줄 수 있습니까?

건배,

+0

당신 캔트 '큐'업로드. 당신이하고 싶은 일은 아약스 업로드입니다. – Laurence

+0

업로드를 대기 중이므로 CSV 처리 대기 중 ... 업로드가 완료되기 전에 업로드가 완료됩니다 – BigJobbies

+1

구성에서 사용중인 대기열 시스템은 어느 것입니까? '동기화'할 수 없습니다. 즉, redis, beanstalkd 등이어야합니다. – Laurence

답변

1

파일을 업로드하는 시간에 대해 얘기하는 경우, 그것은 대기열 문제가되지 않습니다. AJAX로 사용할 필요가있는 사용자는 아마도 페이지를 떠날 수 없을 것입니다.

CSV를 업로드 한 후 처리하는 실제 시간에 대해 이야기하고 있다면 큐를 처리하기 위해 Beanstalkd가 작업하고 있는지 확인해야합니다.

한번에 몇 분의 지연을 추가하고 대기열이 아직 처리되지 않은 상태에서 사용자가 결과를해야합니다 있는지 확인 :

$date = Carbon::now()->addMinutes(15); 
Queue::later($date, '[email protected]', array('message' => $message)); 

참조 : http://laravel.com/docs/4.2/queues