Загрузка множества фотографий (оптимизация)
1.
Влад (24.01.2015 / 15:11)
Здравствуйте дамы и господа
Нужна помощь более опытных товарищей, не буду долго мусолить,перейду к сути.
На сайте нужна загрузка до 30 фото разом, каждая - не более 5МБ.
Для каждой фотографии создается 3 миниатюры (после выделения нужной области юзером, js).
Сделать то я сделал, однако тут к гадалке не ходи, нагрузка серьезная.
Каким образом можно снизить ее / оптимизировать?
Один товарищ (бывший коллега) предложил сделать так:
При загрузке каждой, ставить ее в очередь. и обрабатывать по одной (при пом. cron - например, каждые 3 секунды обращаться к таблице, и проверять на наличие фото, нуждающихся в обработке, и обрабатывать по одной).
Взял на заметку.
Может быть кто - либо из вас сталкивался с этим ранее, или посоветует статейку какую нибудь, предложит решение.
Речь идет о web проекте, поэтому в использовании различных технологий не ограничен.
Заранее спасибо
2.
Tegos (24.01.2015 / 15:59)
Ну да, как вариант, можно очередь.
Но еще вопрос: где именно самая большая нагрузка?
И нагрузка на что?
Что именно ты js-ом делал?
Можно же и на клиете фотки обработать и сразу 3 шт. отправлять, на сервере же только траф ограничивать.
3.
Влад (24.01.2015 / 16:24)
Признаюсь, нагрузку не замерял.
Давай пока рассудим логически: 10 пользователей одновременно загружают по 30 фото по 5мб каждая, из них создаются по 3 миниатюры (+оригинал = 4).
4 файла на каждую фото. 120 файлов на человека.
10чел * 120файлов = 1200 файлов создается на сервере в один момент.
На js реализован кроп фотографии (сам скрипт от sergiusd, позволяет выделять область для кропа, получить координаты, которые я передаю php и рублю фотографии)
4.
Tegos (24.01.2015 / 21:21)
Надо замерить.
Фотки надо обаботать на клиенте, готовые отправлять на сервер.
Добавлено через 01:38 сек.
Какая нагрузка от создания файла?
да и кто сказал что создаватся они будут одновременно?
5.
Влад (24.01.2015 / 21:42)
4.
Tegos, каким образом можно обрезать фотку на клиенте?
нагрузку замерю завтра наверное уже ( у меня 5 утра )
6.
Tegos (24.01.2015 / 22:02)
5.
vlad6085, нужно реализовать?
Пиши в лс.
на исп. библиотек типа jQuery и т.д. ограничений нет?
7.
Влад (24.01.2015 / 22:03)
6.
Tegos, моя задача - максимально (не до бреда конечно) оптимизировать этот процесс, чтобы это не приводило в упадок как сервер, так и юзера.
Кроссбраузерность тоже важна (опять же, не до фанатизма аля ie5)
8.
Tegos (24.01.2015 / 23:38)
7.
vlad6085, и ?
9.
Влад (03.03.2015 / 11:17)
Решил проблему с помошью beanstalk (даже не знал что phalcon умеет это по умолчанию, люблю его
).
Спасибо за внимание
http://docs.phalconphp.com/ru/latest/reference/queue.html
10.
Кевин Митник (03.03.2015 / 15:18)
посмотри сюда. обработка в браузере, кроп, изменение размера, и что самое главное - сохранение на сервер. на выходе получаем всю обработку в браузере, а файлы только сохраняем.
https://github.com/mailru/FileAPI/
https://github.com/eligrey/FileSaver.js/
11.
Дмитрий (03.03.2015 / 15:35)
10.
Кевин Митник_HHTeam, только хотел предложить вариант обработки фоток в браузере))) Это легко делается JS + canvas. Задача сервера будет только сохранить результаты.
URL:
https://visavi.net/topics/41911