amazon s3 — PHP Очередь обработки изображений, проблемы с выполненными заданиями

Я работаю над обработкой изображений с помощью PHP, шаги:

  1. Пользователь загружает несколько изображений.
  2. ImageMagick / GraphicsMagick делают 4 копии разных размеров
  3. Эти копии обрабатываются jpegtran
  4. После обработки загружаются в Amazon S3

Моя проблема:

  • Как я могу узнать, когда закончил imagemagick для запуска jpegtran?
  • Как я могу узнать, когда finsihed jpegtran начать загрузку на 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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]