Масштабируемое асинхронное изменение размера изображения - PullRequest
1 голос
/ 26 июля 2011

Я рассматриваю несколько вариантов наиболее масштабируемого способа обработки изменения размера изображения в PHP (CodeIgniter) Web App. Мне нужно изменить размер изображения на несколько размеров, а затем перенести их в Amazon S3. Итак, вот варианты, которые я придумала до сих пор:

  1. Когда файл загружен, добавьте его в очередь. Постоянно работающая фоновая программа PHP или Python (очевидно, PHP плоха для долго выполняющихся процессов), которая просматривает и обрабатывает очередь, а затем спит в течение x секунд.

  2. Когда файл загружен, запускается новый процесс PHP, который обрабатывает это изображение, затем умирает.

  3. Воспользуйтесь сторонним сервисом, таким как lightspun (В данный момент они не принимают клиентов. Существуют ли другие подобные сервисы?)

Возможно, есть лучший вариант, который я не рассматривал?

Ответы [ 2 ]

3 голосов
/ 26 июля 2011

Я бы выбрал ваш первый выбор, так как он будет более надежным и означает, что вы можете выполнять работу с бэкэндом, не снимая передний конец.может переместить его на другой сервер, если очередь становится экстремальной.

1 голос
/ 26 июля 2011

Ваша первая идея звучит хорошо по причинам, уже указанным, отнимает у пользователя много времени на обработку, и вы можете добавлять изображения большего размера и т. Д., Не ухудшая пользовательский опыт. Я добился хороших результатов, используя инструменты командной строки для обработки изображений и обработки изображений. Вам повезло с использованием php в длительных процессах, использующих его ответвление вилки. http://php.net/manual/en/function.pcntl-fork.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...