@proelixir

Страница 888 из 1045
Анастасия
22.02.2018
12:38:24
кто-нибудь использует spawn/task в контроллерах для создания отдельных процессов, будут ли проблемы из-за слишком большого количества паралелльных процессов?

Анастасия
22.02.2018
12:40:12
в моем случае хочу слать сообщение в сокет, результат не важен. ну и вообще для случаев когда результат не важен

Alex
22.02.2018
12:43:05
проблемы с большим количеством процессов начинаются, если они используют общие ресурсы - ets, пул воркеров/коннектов, etc

Google
Alex
22.02.2018
12:43:24
сами по себе процессы почти ничего не стоят

Alexey
22.02.2018
12:45:01
ну и есть ключ +P

Aldar
22.02.2018
12:45:53
Артем
22.02.2018
12:46:07
в моем случае хочу слать сообщение в сокет, результат не важен. ну и вообще для случаев когда результат не важен
интересный вопрос кстати. я пока сделал генсервер, который шлёт сообщения в сокеты

Это бродкаст на эндпоинт? Можно в принципе и без создания процесса слать.
там же зачастую не только бродкаст, а ещё темплейт срендерить или что-то ещё такое

Анастасия
22.02.2018
12:47:04
вообще неправильно описала, у нас сообщения сначала падают в rabbitmq, а оттуда уже в сокет, так что будет писать в очередь

Aldar
22.02.2018
12:48:46
вообще неправильно описала, у нас сообщения сначала падают в rabbitmq, а оттуда уже в сокет, так что будет писать в очередь
Получается что куча процессов будет слать в очередь, если это ок то ничего страшного, сами по себе процессы достаточно дешёвые

Анастасия
22.02.2018
12:49:29
по идее и так куча процессов шлет, так что попробую, спасибо ?

Alex
22.02.2018
12:49:58
вообще неправильно описала, у нас сообщения сначала падают в rabbitmq, а оттуда уже в сокет, так что будет писать в очередь
в таком раскладе начинается более интересная история - какие гарантии тебе нужны

можно ли сообщения терять, какие гарантии хочется предоставить клиенту etc

Анастасия
22.02.2018
12:51:42
в таком раскладе начинается более интересная история - какие гарантии тебе нужны
результат и сейчас не проверяется, так что гарантии не нужны, единственное что сейчас при падении запрос возвращает ошибку, но это скорее минус чем плюс

Alex
22.02.2018
12:55:06
тогда вообще никакой разницы. единственный нюанс - метаданные в process dictionary. если контроллеры выполняются в процессе-обработчике ковбоя, то стоит учесть, что при connection: keep-alive этот процесс реиспользуется и метаданные надо чистить.

то есть, кейс примерно такой у меня был - lager, lager_logstash_backend. все метаданные лагера попадают в сообщение в логстеше. большую часть времени все идет отлично, но вот в некоторых случаях в выборку из эластика по, скажем, номеру телефона, начинают попадать запросы, не относящиеся к этому номеру телефона. потому что в сервисе-клиенте пул реиспользуемых коннектов с keepalive. процесс коннекта реиспользуется, а метаданные в нем переписываются не сразу.

Google
Alex
22.02.2018
13:09:22
а что из многочисленных datetime либ нормально умеет в вычисления с DST?

Tzdata has an automatic update capability that fetches updates from IANA and which is enabled by default awww

Dmitry
22.02.2018
13:33:02
@nwalker tzdata - со своим желанием и писать в файловую систему, куда сама хочет и в интернет лазить по-своему усмотрению одно время немного попила крови.

Alex
22.02.2018
13:33:44
Dmitry вот меня тоже заранее пугает

Dmitry
22.02.2018
13:34:18
Раньше в ней эта опция лазить в интернет не отключалась, с нашей подачи теперь отключается ?

Alex
22.02.2018
13:45:05
а вот это уже как-то жестко https://gist.github.com/nwalker/bcb7492657598dff59c7ea459e972c3e

это я timex в зависимости добавил

Максим
22.02.2018
15:18:46
Кстати, по timex, есть у него возможность форматирования даты в гггг-мм-дд? Не нашёл форматтера для дня из 2 чисел, если день меньше 10 получается что-то типа 2018-10-1

Dmitry
22.02.2018
15:33:40
@Slavenin {{2018, 2, 2}, {12, 0, 0}} |> NaiveDateTime.from_erl!() |> Timex.format!("%d/%m/%Y %H:%M:%S", :strftime) "02/02/2018 12:00:00" - Разве есть форматтер из одного числа для дня? Помойму из двух только.

Максим
22.02.2018
15:35:12
Дефолтные форматтеры я смотрел

Dmitry
22.02.2018
15:36:29
@Slavenin Timex.format!(date, "{YYYY}-{0M}-{0D}")

А, дефолтный вот так, я просто везде использую стандартизированный.

date = ~D[2016-02-02]; Timex.format!(date, "{YYYY}-{0M}-{0D}") "2016-02-02"

Артем
22.02.2018
15:45:10
а что-нибудь типа rolify есть для ролевой модели? или превед велосипед?

Dmitry
22.02.2018
16:37:57
@nwalker Ну, это tzdata тащит hackney и все его зависимости. В идеале - это должна быть опциональная зависимость, но так как мы всё равно везде так или иначе используем hackney - у нас не было проблем с тем, что у tzdata такие зависимости.

Dmitry
22.02.2018
16:41:40
А, в этом смысле)

Alex
22.02.2018
16:43:37
короче, я не стал заморачиваться и оберну qdate_localtime

предварительно его обновив, пожалуй

Buckler
22.02.2018
20:34:46
Hello, Uladzimir! Please, calculate: 27+81=... If you don't answer - you'll get banned from the channel... Good luck!

Google
Den
23.02.2018
11:46:06
Как думаете почему неимплементированые behaviors бросают только warning, а не прекращают компиляцию полностью?

Как если бы в ооп забили на интерфейс)

Dmitry
23.02.2018
12:00:45
А почему другие warning не прекращают компиляцию?

Dmitry
23.02.2018
12:05:04
Есть опция - превратить warning-и в ошибку.

Тогда они будут прекращать компиляцию.

Den
23.02.2018
13:40:47
Хорошая опция, только deprecated функции сторонних либок повалят все, хех

Dmitry
23.02.2018
17:12:42
Сторонние Либы не валят, на сколько я знаю

Vladimir
23.02.2018
18:11:09
потому что иногда даже не реализованный полностью behavior может работать. Например не реализовывать handle_cast вполне норм -- если никогда не кидать процессу gen_server:cast

Den
24.02.2018
21:13:20
Какая же штука классная Stream.concat, думал с Range и Stream.cycle не сработает - работает отлично ?

Fey
25.02.2018
17:23:24
phoenix_ecto гарантирует, что все запросы к постгресу в рамках обработки одного http-запроса выполняются в одной сессии бд?

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

Dmitry
25.02.2018
17:28:26
@feymartynov phoenix_ecto не делает сам вообще никаких запросов к базе данных.

Fey
25.02.2018
17:29:26
ну я имею ввиду стек phoenix и ecto

Fey
25.02.2018
17:30:29
сессия бд в постегресе

Alex
25.02.2018
17:30:50
транзакция что ли?

Fey
25.02.2018
17:32:22
нет, именно сессия

в рамках одной сессии может выполняться несколько транзакций

Google
john
25.02.2018
17:34:55
скажи уже что ты там придумал

у меня какое то дежа-вю, что-то типа того спрашивали три года назад

Fey
25.02.2018
17:36:36
connection ?
ну почти

я придумал заиспользовать RLS в постгре

john
25.02.2018
17:36:54
зачем тебе переменная?

Fey
25.02.2018
17:37:06
типа как тут https://github.com/mbuhot/ecto_row_level_security

Aldar
25.02.2018
17:37:17
Насколько я знаю там пул соединений

Alex
25.02.2018
17:37:28

Страница 888 из 1045