
Askhat
10.02.2017
10:59:40
Один из них отвечает на сокеты
Остальные за http
и так далее
А как работает торнадо?

Google

parikLS
10.02.2017
11:00:08
там ивент луп
и корутины

Askhat
10.02.2017
11:01:14
Channels работает под Twisted, может это как то картину разъяснит?)

parikLS
10.02.2017
11:01:51
у твистед насколько я знаю та же модель

Askhat
10.02.2017
11:01:59
Глядя на исходники я увидел, что весь http сервер перекопали

b0g3r
10.02.2017
11:06:16
https://docs.djangoproject.com/en/1.10/topics/forms/formsets/#passing-custom-parameters-to-formset-forms не могу дойти как передать каждой форме в формсете по параметру

Askhat
10.02.2017
11:12:35
Не знаю как, но Channels delay сработал отлично
Без костылей и простым интерфейсом

parikLS
10.02.2017
11:13:41
Ну так в 1 процессе же)

Askhat
10.02.2017
11:13:50
Как раз таки нет
Чтобы можно было отложенно вызвать, запускается manage.py rundelay
воркер
Который слушает каналы

Google

Askhat
10.02.2017
11:14:38

parikLS
10.02.2017
11:14:56
Ну как нет, сокет же открыт в том же процессе что и ченнелс

Askhat
10.02.2017
11:15:09
Процессы разные
Channel layer один и тот же

parikLS
10.02.2017
11:15:38
Ты передаешь сообщение через редис, а не сокет

Askhat
10.02.2017
11:15:58
Я понял как это работает
Им вообще похер на сокеты, существуют они или нет)
У них есть просто идентификаторы на каналах
Процессы просто вызывают эти самые идентификатры
Из любого процесса вызываешь канал под названием my_channel например. И если процесс найдётся который обслуживает это название канала - сработает
Короче говоря event emitter
Смотря на код видишь некую магию
Что твой код вызывается в твоём же процессе без каких либо косяков
Кстати кто нибудь уже опробывал asyncio?

Никита
10.02.2017
11:20:51
воооооооооооот как то так я и подозревал
опробывал)

Askhat
10.02.2017
11:20:59
:D
И как

Никита
10.02.2017
11:21:12
нормос

Askhat
10.02.2017
11:21:15
Стоит изучать?

Google

Никита
10.02.2017
11:21:21
ну мы его еще на 3.4 юзали

Askhat
10.02.2017
11:21:25
Ты для каких целей его используешь?
Ну на 3.6 он интересней же

Никита
10.02.2017
11:21:41
да
но когда мы его юзали, 3.5 только только вышел)

parikLS
10.02.2017
11:22:01
у меня как раз аиохттп вебсокеты обслуживает на одном из проектов

Никита
10.02.2017
11:22:13
ну он вообще очень похож на торнадо
мы на нем личный кабинет сделали
планировалась и витрина, но ее в итоге статикой раздавали из кэша
а лк перенесли в джангу))
но опыт был интересный
основная боль в том, что алхимия не умеет в асинхронность и приходилось из нее фактически юзать только билдер
стоит ли изучать? конечно стоит, по крайней мере для расширения кругозора
а для раныка пока не ясно...
*рынка

Askhat
10.02.2017
11:24:29
стоп, Алхимия?
Можешь упомянуть?

Никита
10.02.2017
11:25:03
что упомянуть?

parikLS
10.02.2017
11:25:22
вот собственно екзампл для алхимии с аиохттп
https://github.com/KeepSafe/aiohttp/blob/master/demos/polls/aiohttpdemo_polls/db.py

Никита
10.02.2017
11:25:27
sqlalchemy по крайней мере на тот момент не умела

Google

Askhat
10.02.2017
11:25:43
А, вы имеете в виду sqlalchemy =/

Никита
10.02.2017
11:25:47
воот да

parikLS
10.02.2017
11:27:20
на самом деле ничего напряжного, если база не большая

Pavel
10.02.2017
11:27:22

Victor
10.02.2017
11:49:22
господа, приветствую! Для местоположения шаблонов что считается best practice: в общей папке templates или отдельно для каждого приложения?

parikLS
10.02.2017
11:51:18
мое имхо - в общей чтото что может шарится между апликейшенами, бейс какойто
а остальные в своих аппах

Denis
10.02.2017
11:57:23
Конечно в своих
И лучше по подпапкам
Иначе среди 50+ в папке аппа умрешь
Я пользую CRUD папки и partials для инклудов

Pavel
10.02.2017
12:01:23

Victor
10.02.2017
12:07:07
Спасибо за ответы. В целом понятно.

Askhat
10.02.2017
12:12:32
Пишите SPA :D
Не надо использовать django templates

Alexander
10.02.2017
12:40:10
Мб тут кто-нибудь подскажет :)
Всем привет. Подскажите кто с sorl(Django, Haystack) работал -
если добавил поле в модель и хочу чтобы solr его, как уже и другие поля модели, начал индексировать
то можно просто перегенерировать schema.xml и сделать updex_index
или же надо делать сразу rebuild_index ?

digital
10.02.2017
12:45:30
Помоему updex_index будет достаточно

Magomed
10.02.2017
12:48:11
Привет , нужно сделать fail safe server, например два одинаковых сервера, если один упал то работает другой. Как это называется? Или может ссылку где объясняется?

Alexander
10.02.2017
12:50:29

Google

Vlad
10.02.2017
12:53:45

Magomed
10.02.2017
12:55:02

Vlad
10.02.2017
12:55:30
Совсем не обязательно
http://nginx.org/ru/docs/http/ngx_http_upstream_module.html
Но это как примитивный вариант
Есть много более навороченных вариантов в зависимости от хотелок

Magomed
10.02.2017
12:56:44
Тогда как синхронизируются базы данных

Vlad
10.02.2017
12:57:37
А это другой вопрос:
1) Базе хорошо бы тоже быть реплицированной
2) Все хосты с приложением смотрят на одну базу
Т.е. для базы нужно отдельный хост или контейнер выделить.

Magomed
10.02.2017
12:58:59
То есть грубо говоря три сервера
Один содержит в себе базу данных
А два остальных рабочие

Vlad
10.02.2017
12:59:48
Грубо - да. И на один из рабочих поднят nginx, в котором настроен upstream на себя и соседний сервер.

Denis
10.02.2017
12:59:54
для начала советую ознакомиться с балансировщиками нагрузки
https://xakep.ru/2014/03/15/62207/
Что касается распределённой БД, то копать в сторону какой нить перконы, у postgres есть встроенный механизм master/slave