
Nurik
24.01.2018
15:28:07
Ребят подскажите. Кароче сделал такую штуку:
1. Запрашиваем картинку GET /public/images/fb82/eba9/821f5664842e5b513e188056__100_100.png
2. nginx смотрит есть картинка, если есть отдаёт.
3. Иначе отправляет в приложенние
4. Приложение смотрит существует ли файл 821f5664842e5b513e188056.png
и если да, то уменьшает изображение и записывает туда же где лежит оригинал
5. Делает редирект на самого себя.
6. Получили изображение.
Всё работает. Но товарищ говорит, что может возникнуть гонка, когда будет сразу несколько тысяч обращений на ресайз.
Нужно ли в этом случае прикручивать кэш для nginx или при аплоуде нагенерировать изображение для стандартных размеров экрана (клиенты моб.устройства) ?
Сервер по характеристикам средний. 12 ядер, 64 озу. юзаю libvips для резайза, через nodejs либу sharp.

Alexandr
24.01.2018
15:34:50
чем плоха гонка если сжатый файл перезаписывать? ... операция идемпотентна, о просадке производительности без замеров говорить нет смысла

Nurik
24.01.2018
15:37:45

Google

Alexandr
24.01.2018
15:41:16
ну можно завернуть получение сжатых файлов в централизованный сервис на очередях)

Nurik
24.01.2018
15:44:56

Alexandr
24.01.2018
15:45:32

Nurik
24.01.2018
15:52:39
Вот думаю сделать задержку перед попыткой делать ресайз. Т.к. ресайз отрабатывает мгновенно почти. И тогда из 1000 запросов 999 будут ждать лишнии пару секунд.
Нормально или херня ?
т.е. в редис самый первый залез записал туда image и время и потом начал делать ресайз, остальные прочитали из редис сколько времени нужно подождать, прежде чем запросить этот файл снова. Т.е. ждем 2-5 секунд и делаем редирект на себя же.

Alexandr
24.01.2018
15:58:59
можешь сделать exclusive flock и смотреть что в файле ... если ничего, то делать ресайз, если же лок достался уже на готовый файл - значит все и так хорошо

Sergey
24.01.2018
17:19:20
да, локи как-то надежнее и проще

Dmitry
24.01.2018
19:08:56
Я не про просадку производительности, а про ситуацию, когда из 10 запросов, только один получит изображения, а остальные отвалятся, потому что файл будет открыт другим процессом.
А с чего отвалится то, чтение исходника - не эксклюзив, все могут читать, запить результата сделай просто атомарно - временный файл + mv
Можно просто использовать proxy_cache, там есть бизи локи, тут правда чистить кеш сложно

Serge
25.01.2018
07:54:12
всем привет. кто в курсе в симфони 3.3. можно инжектить массив объектов по интерфейсу? В конструкторе __construct(Foo ...$foos) {}

Maksim
25.01.2018
07:55:20
распаковка аргументов всё ж не анальная замена джинериков) оно про другое)

Serge
25.01.2018
07:55:57
когда описываешь сервис:
arguments:
$foos: ...
То ругается что передаю массив в конструктор, если
arguments:
...$foos: ...
говорит что надо именованные переменные юзать или инты)

Google

Serge
25.01.2018
07:56:24
чем кто нибудь залупу туда заинжектит

Maksim
25.01.2018
07:56:34
сделай коллекцию)

Serge
25.01.2018
07:56:59
да как-то не хотел

Maksim
25.01.2018
07:57:05
придётся)

Serge
25.01.2018
07:57:12
кароч, не работает в di?

Alexandr
25.01.2018
07:57:16

Serge
25.01.2018
07:57:30
не работает так
пробовал

Maksim
25.01.2018
07:57:34
ну тебе каждый объект надо передать отдельным аргументом
не массивом, а именно аргументом

Alexandr
25.01.2018
07:57:54

Maksim
25.01.2018
07:58:16
ну вот, да, Александр верно написал

Serge
25.01.2018
07:58:31
ну хз, не работает
Александр, какая версия?

Maksim
25.01.2018
07:59:11
сделай коллекцию. Она правильнее будет при любых раскладах. Ещё раз: распаковка - это про другое. Это не замена джинериков

Alexandr
25.01.2018
07:59:21

Serge
25.01.2018
07:59:27
спасибо

Maksim
25.01.2018
07:59:50
тем более распаковка в конструктуре... выглядит подозрительно
и пахнет так же)

Alexandr
25.01.2018
08:00:18

Google

Serge
25.01.2018
08:00:25
почему?)

Alexandr
25.01.2018
08:00:51
хотя бы потому, что работает только с последним аргументом ))

Serge
25.01.2018
08:01:06
так, стоп
я наверное просто не так понял работу этого оператора

Alexandr
25.01.2018
08:01:43

Serge
25.01.2018
08:02:04
я думал что ... говорит нам, что там ожидается массив интерфейсов
в общем, напутал)

Alexandr
25.01.2018
08:03:08

Serge
25.01.2018
08:04:47
есть ссылка на доку? не могу найти

Maksim
25.01.2018
08:07:32
https://wiki.php.net/rfc/argument_unpacking

Alexandr
25.01.2018
08:14:20
http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list

Serge
25.01.2018
08:46:12
тенкую

M
25.01.2018
08:47:17
Извиняюсь за оффтоп, но хотелось бы рынок труда обсудить.
Сейчас вот наблюдаю вакансии в связи со скорым перекатом в СПб.
В СПб, а ещё более в МСК такое чувство что программистов за людей считают ?
Просто сейчас в екб и такой набор плюшек мало кто предоставляет...
Собственно вопрос, кандидаты тоже грыззутся за вакансии? Сильная конкуренция на Middle уровень?

Maksim
25.01.2018
08:49:56
в большинстве случаев срать на все эти плюшки) из полезных, по факту, только дмс)
конкуренция - вопрос спорный) мидла, а уже тем более синьёра можно месяцами искать и хер найдёшь)

M
25.01.2018
09:02:52
Как понять, что я миддл?))
Для меня миддл это чел который может самостоятельно решить поставленную задачу без присмотра(в случае если есть сеньор, то посоветоваться с ним по поводу архитектуры решения).
Чел который О ЧУДО сможет загуглить доку, прочитать, освоить инструмент.
Чел у которого за спиной есть опыт на каком-либо стеке, с какими-либо инструментами. Опыт который позволит не идти гуглить и вникать, а начать внедрять))
Если все тезисы выше - это суть мидла, то я миддл))
Просто у @fes0r помню как-то читал кто такой идеальный джун, так интересно, кто такой идеальный миддл)))

Sergey
25.01.2018
09:05:04
но да - главное отличие от джуна - самостоятельность и адекватное качество

Maksim
25.01.2018
09:06:02
да нету никаких выверенных градаций. вот в чём фокус

Google

Michael
25.01.2018
09:07:07
джун - не знает, как надо сделать задачу
миддл - знает, как надо сделать задачу
сеньор - знает, как не надо делать задачу

Sergey
25.01.2018
09:07:41
согласен с Максимом что все эти градации настолько размыты что в целом нет смысла)

Artemy
25.01.2018
09:08:44
Я бы подправил:
джун - не знает, как надо правильно сделать задачу

Admin
ERROR: S client not available

Dmitriy
25.01.2018
09:08:48
к тому же в каждой конторе это свои градации

Artemy
25.01.2018
09:09:21
Ну, я просто джун и навелосипедить что угодно могу и это будет работать, просто не очень красиво и качественно)

Maksim
25.01.2018
09:09:51
я бы не был так уверен, что прям "что угодно")
вот как раз синьор не скажет, что он сможет сделать что угодно)

Artemy
25.01.2018
09:11:03
Вот, еще одно важное отличие)

M
25.01.2018
09:11:43

Sergey
25.01.2018
09:12:37

Maksim
25.01.2018
09:13:18

Sergey
25.01.2018
09:14:17
тип того)

M
25.01.2018
09:14:25
в большинстве случаев срать на все эти плюшки) из полезных, по факту, только дмс)
Ну хз, ты не работал видимо в офисе без окон с плохой вентиляцией с вариантом переехать в офис похожий на сарай, но с окнами.
А запах чужих пельмящей когда в одном офисе(где нет кухни) чел греет еду меня лично отвлекает.
А серая ЗП когда вдруг что нужно одолжить у банка денег, ИЗВИНИТЕ, либо большой процент либо до свидания.

Maksim
25.01.2018
09:15:09

Sergey
25.01.2018
09:15:22
печень... ненавижу людей которые в офисе печень греют
даже если кухня есть
рыбу туда же, сразу вспоминаются стайки индусов
но вообще из твоего описания складывается впечатление что вы там не код писали а кросовки шили

Maksim
25.01.2018
09:16:28
печень - это ладно ещё.
у нас на работе был любитель белую рыбу в микроволновке разогреть... бля, на все 2 этажа стойкий запах падали...

Google

Sergey
25.01.2018
09:16:55
ну да мы отдалились от темы)

Nurik
25.01.2018
09:20:20

Sergey
25.01.2018
09:20:46

Nurik
25.01.2018
09:21:21

Vitaly
25.01.2018
09:36:52
Извиняюсь за оффтоп, но хотелось бы рынок труда обсудить.
Сейчас вот наблюдаю вакансии в связи со скорым перекатом в СПб.
В СПб, а ещё более в МСК такое чувство что программистов за людей считают ?
Просто сейчас в екб и такой набор плюшек мало кто предоставляет...
Собственно вопрос, кандидаты тоже грыззутся за вакансии? Сильная конкуренция на Middle уровень?
В СПб за нормальных кандидатов грызутся эйчары. Конкуренция наблюдается среди джунов, потому, что их много и все они примерно одинаково ничего из себя не представляют. Много проектов у которых вакансии на мидла висят постоянно, например Эмбрия. Много странных легаси проектов, которые готовы взять любого, кроме джуна, лишь бы уже хоть кто-то работал. Много серых проектов (опционы, арбитраж, ставки) которые готовы взять мидла, потому, что лучшим кандидатам нужны гарантии и белая зп.

Maksim
25.01.2018
09:37:58
ага, а давно эмбрия не серый проект?)

M
25.01.2018
09:38:35
В СПб за нормальных кандидатов грызутся эйчары. Конкуренция наблюдается среди джунов, потому, что их много и все они примерно одинаково ничего из себя не представляют. Много проектов у которых вакансии на мидла висят постоянно, например Эмбрия. Много странных легаси проектов, которые готовы взять любого, кроме джуна, лишь бы уже хоть кто-то работал. Много серых проектов (опционы, арбитраж, ставки) которые готовы взять мидла, потому, что лучшим кандидатам нужны гарантии и белая зп.
А как на говно не нарваться? Первое место по тому что джун был, в говно вляпался, второе место по тому что первое попавшееся взял. Вангую надо несколько собесед пройти и выбрать то что нравки.

Vitaly
25.01.2018
09:38:49

Maksim
25.01.2018
09:39:25
да я в курсе) у меня почти все бывшие коллеги по различным филиалам эмбрии расселись)

Vitaly
25.01.2018
09:39:27