@pydjango

Страница 122 из 1273
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
https://github.com/KeepSafe/aiohttp/blob/master/demos/polls/aiohttpdemo_polls/db.py
msg = "Question with id: {} or choice id: {} does not exists" raise RecordNotFound(msg.format(question_id), choice_id) IndexError будет на формате

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
господа, приветствую! Для местоположения шаблонов что считается best practice: в общей папке templates или отдельно для каждого приложения?
второой вариант позволяет легко переносить приложения между серверами. первый вариант - лего обновлять дизайн, просто подменять папку tempaltes

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
Привет , нужно сделать fail safe server, например два одинаковых сервера, если один упал то работает другой. Как это называется? Или может ссылку где объясняется?
Можно примитивно в nginx настроить upstream на несколько серверов, где крутится приложение, там же руками проставить "силу" этих серверов - кто больше, кто меньше сможет обработать. А вообще искать про горизонтальное масштабирование приложений

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

Страница 122 из 1273