2014-12-02 6 views
0

문제는 단계는 다음과 같습니다PHP 이미지 처리 큐, 나는 PHP와 이미지 처리에서 일하고 있어요 종료 된 작업

  1. 사용자는 여러 이미지를 업로드합니다.
  2. ImageMagick이/GraphicsMagick는이 사본을 일단 처리 jpegtran
  3. 에 의해 처리됩니다
  4. 다른 크기의 4 개 개의 사본이 아마존 S3에 업로드 할

내 문제 :

  • 것은 내가 알 수있는 방법 jpegtran을 시작하기 위해 imagemagick을 마쳤습니까?
  • 언제 S3에 업로드를 시작할 지 알 수 있습니까?

저는 Gearman을 사용하고 있습니다. imagemagick을위한 작업자, jpegtran을위한 다른 작업자, S3의 다른 작업자가 있습니까?

도움 주셔서 감사합니다.

답변

0

직원이 다음 프로세스를 시작할 수 있습니다.

class ImagemagickWorker 
{ 
    public function imagemagicProcessing (GearmanJob $job) 
    { 
     // your image processing code 
     $gmClient = new GearmanClient(); 
     $gmClient->do('jpegtranProcessing', $workload); 
    } 
} 

사례 작업을 더 복잡하게 제어하고 콜백을 정의하는 것이 좋습니다.

class ImagemagickTask 
{ 
    public function imagemagicProcessing ($workload) 
    { 
     // do whatever you need to do 
     $gmClient = new GearmanClient(); 
     $gmClient->setCompleteCallback (
      function (GearmanTask $task) use ($gmClient) 
      { 
       // repeat the process 
      } 
     ); 
     $gmClient->addTask('imagemagicProcessing', $workload); 
     $gmClient->runTasks(); 
    } 
} 
+0

놀라운 : 좋은 해결책. 감사!!!! – Jesus