@rudepython

Страница 18 из 1719
H
06.07.2016
21:52:15
на анус похоже, действительно

я сам не умею

сегодня только на канал зашел

хотел на ноде писать

Google
H
06.07.2016
21:54:25
а тут вот сказали нода говно для пидоров

вот я теперь переметнулся

Dave
06.07.2016
22:30:45
Я сеньор дев на ноде

Вы обоссались

А ещё я еврей

Так что ещё и кошерно так обосрались

dmks
06.07.2016
22:32:21
ой да и похуй

Alexey
06.07.2016
22:37:13
Он скучный, простите.

dmks
06.07.2016
22:46:50
ну, зато он старался

H
06.07.2016
23:08:14
котаны, кто не спит, есть внезапный ночной вопрос

Dave
06.07.2016
23:09:55
Бухай

H
06.07.2016
23:11:42
надо сделать запрос из фронтеда и получить данные из двух баз данных, и положить в одну общую таблицу. Сейчас у меня аякс асинком дергаются два запроса, в связи с переходом на фласк, думаю как сделать красиво, варианты: 1) оставить как есть, 2 роута во фласке и ответом в виде джсона 2) один роут, асинк сделать на сервере через async питона, объединить в вернуть 3) вебсокеты

Denis
06.07.2016
23:12:16
1

Google
H
06.07.2016
23:13:55
почему, ведь меньше запросов тцп

Denis
06.07.2016
23:14:13
Пусть клиент потеет, а не сервер

H
06.07.2016
23:20:42
и есть ли извращенцы flask uwsgi python3.5? или мне может быть не фласк нужен? 250кб сорцов, сейчас все на webpy.org, а дизайн фронтеда покупной, так что шаблоны не очень нужны, разве что права ограничивать

Dmitry
07.07.2016
03:09:53
У меня есть flask uwsgi python 3.5, чо такого то

agic
07.07.2016
03:51:41
Ни какой оптимизации для клиента

H
07.07.2016
07:06:21
У меня есть flask uwsgi python 3.5, чо такого то
у них на сайте написано, что могут быть баги с третьим питоном

Roman
07.07.2016
07:38:54
во фласке ты не сможешь сделать асинк запросы к базе

потому что flask - wsgi

а wsgi по опредлению синхронный

H
07.07.2016
07:48:17
да почему же? я ведь урлы могу качать асинком, какая разница с базой

Roman
07.07.2016
07:48:55
расскажи, как ты урлы качаешь асинком в wsgi приложении?

H
07.07.2016
07:55:25
создал asyncio.get_event_loop и вызвал в нем async def

H
07.07.2016
08:00:04
ну асинхронно же

Roman
07.07.2016
08:01:15
это в wsgi приложении?

Roman
07.07.2016
08:02:02
ну асинхронно же
Нет. Если тебе сыпятся поштучно запросы?

Roman
07.07.2016
08:02:23
рано для спора, надо выяснить предмет спора

может у него действительно асинхронный сервер рядом стоит, а не в wsgi приложении

H
07.07.2016
08:02:43
ну 20 урлов я выкачиваю за пару сек

Roman
07.07.2016
08:02:47
=))

Google
H
07.07.2016
08:03:04
нет у меня ничего не стоит это просто рсс фидер

Roman
07.07.2016
08:03:09
ты не пудри тут носы благородным донам

Roman
07.07.2016
08:03:11
ну 20 урлов я выкачиваю за пару сек
Тебе эти урлы в wsgi как падают?

H
07.07.2016
08:03:48
в хтмлке лежат

Roman
07.07.2016
08:04:06
покажи код, а то тут сюр мысли

H
07.07.2016
08:04:49
пришел запрос на роут, я смотрю хтмл, беру оттуда все ссылки, выкачиваю их, заменяю собержимое и кладу в редис

H
07.07.2016
08:05:18
уеп

Roman
07.07.2016
08:05:39
Ну так это другое

Если бы тебе они лились поштучно - ты бы ждал результат каждого запроса

Ваш ко

H
07.07.2016
08:06:38
да, пришлось бы луп создавать

Roman
07.07.2016
08:06:59
Roman
07.07.2016
08:23:06
в общем при всё уважении, но у тебя пародия на асинхронность. поясню почему. для одного раза так может и прокатит - ты оптимизуер одновременную закачку файлов. Но оптимизация эта работает, если у тебя выполняется несколько условий: 1. выкачаевается с разных серверов или сервер способен одновременно и эффективно отдавать несколько потоков 2. твоя операция носит разовый характер по факту у тебя случается запрос к wsgi серверу, запускается wsgi приложение, в нём создаётся event loop и вызывается run_until_complete - это всё синхронный операции в рамках одного http request к твоему серверу. получается один долгий синхронный запрос, пусть ты и выкачаваешь файлы за несколько секунд. Т.е. создай 10 таких запросов и в лучшем случае получишь 10 паралелльных потоков, у каждого из которых будет свой event_loop внутри. И хорошо если ты ещё не огребёшь конфликтов в рамках одного процесса. асинхронный сервер позволяется все io операции вести асинхронно - принимать http запрос, обращаться к базе, запрашивать по http на удалённом сервере. Главное отличие от твоей рализации заколючается в том, что wsgi application - это по сути синхронная функция, внутри которой не может быть обращений к асинхронным корутинам и обязательно требуется return. В асинхронном сервере результат возвращается когда-нибудь позже и async/await требуются к корутинам является обязательным. Т.е. ты либо реализуешь разовую задачу, которую так же мог легче и проще сделать синхронно, либо неправильно применяешь инструмент и будь готов огрести по щам от своего же творения.

Roman
07.07.2016
08:50:33
в общем при всё уважении, но у тебя пародия на асинхронность. поясню почему. для одного раза так может и прокатит - ты оптимизуер одновременную закачку файлов. Но оптимизация эта работает, если у тебя выполняется несколько условий: 1. выкачаевается с разных серверов или сервер способен одновременно и эффективно отдавать несколько потоков 2. твоя операция носит разовый характер по факту у тебя случается запрос к wsgi серверу, запускается wsgi приложение, в нём создаётся event loop и вызывается run_until_complete - это всё синхронный операции в рамках одного http request к твоему серверу. получается один долгий синхронный запрос, пусть ты и выкачаваешь файлы за несколько секунд. Т.е. создай 10 таких запросов и в лучшем случае получишь 10 паралелльных потоков, у каждого из которых будет свой event_loop внутри. И хорошо если ты ещё не огребёшь конфликтов в рамках одного процесса. асинхронный сервер позволяется все io операции вести асинхронно - принимать http запрос, обращаться к базе, запрашивать по http на удалённом сервере. Главное отличие от твоей рализации заколючается в том, что wsgi application - это по сути синхронная функция, внутри которой не может быть обращений к асинхронным корутинам и обязательно требуется return. В асинхронном сервере результат возвращается когда-нибудь позже и async/await требуются к корутинам является обязательным. Т.е. ты либо реализуешь разовую задачу, которую так же мог легче и проще сделать синхронно, либо неправильно применяешь инструмент и будь готов огрести по щам от своего же творения.
+

H
07.07.2016
09:07:18
соряшки, надо было отойти

я не разбирался еще с асинхронными фреймворками, так как не было задачи такой

Как лучше тогда мою задачу было выполнить? через concurrent.futures?

Roman
07.07.2016
09:10:10
её лучше выполнять в отдельном сервер, предлагаю: aiohttp + aiopg

если юзается постгрес

Google
agic
07.07.2016
09:10:25
plhfcnb

здрасти

H
07.07.2016
09:11:49
у меня довольно большое приложение, но есть несколько роутов, которые требуют такого поведения

например все стандартно, сделал запрос к базе, выдал ответ, умер

но есть интереснее роут, приходит какой-то айди, и мне надо узнать у Х устройств есть ли на каком-то из них этот айдишник и вернуть связанную информацию

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

Roman
07.07.2016
09:33:19
что тебе мешает поднять нужный функционал на отдельном сервере и рулить через location в nginx?

H
07.07.2016
09:34:18
какие-то микросервисы получаются :)

Roman
07.07.2016
09:34:41
а, ну тогда не надо так делать

H
07.07.2016
09:37:34
ты ставишь меня в тупик

Roman
07.07.2016
09:38:07
последняя реплика была с ноткой иронии

так лучше?

H
07.07.2016
09:40:24
т.е. если я хочу такую функциональность я не могу монолитно сделать все во фласке без костылей?

Roman
07.07.2016
09:40:56
во фласке ты не можешь монолитно писать синхронно/асинхронно

и дело не во фласке, а в wsgi

H
07.07.2016
09:43:24
а тот же айо, он как я почитал может и так и так работать?

Roman
07.07.2016
09:43:37
oO

поясни

H
07.07.2016
09:45:31
ну сразу вернуть нужный ответ

я походу совсем плаваю в этой теме :)

Google
H
07.07.2016
09:46:23
http://aiohttp.readthedocs.io/en/v0.15.1/web.html#handler

return web.Response(text=txt) в самом низу

Страница 18 из 1719