
Nikolay
28.09.2017
10:20:34
но работает только в 3.6

b0g3r
28.09.2017
10:20:53
class A():
a = 2
как сюды прицепить?
a: int
a = 2
?

Nikolay
28.09.2017
10:21:56

Google

b0g3r
28.09.2017
10:22:13
о, работает
спасибо

Ruslan
28.09.2017
10:52:28
камрады, мне тут JWT надо генерировать, на какую либу смотреть?
python-jose или jwcrypto?
или pyjwt, который может не всё, но имеет звёзды на гитхабе с большим отрывом?

Danil
28.09.2017
11:27:20
А ты DRF не используешь?

Ruslan
28.09.2017
11:31:13
я вообше на aiohttp

in favor
28.09.2017
11:35:02
почему aiohttp, а не sanic/japronto?

Artem
28.09.2017
11:41:15
«Don't use it for anything serious for now and definitely don't use it in production.»
мб иза этого

Ruslan
28.09.2017
11:41:43

Nikolay
28.09.2017
11:41:45
а зачем sanic и japronto, если есть aiohttp?

Ruslan
28.09.2017
11:41:58
пока нет претензий к выбору

Google

Nikolay
28.09.2017
11:41:58
точнее, sanic еще ничего, но слишком ограниченный

in favor
28.09.2017
11:42:03

Nikolay
28.09.2017
11:42:20

Ruslan
28.09.2017
11:43:00
хз, я на чистом фласке и тредах нормальный перформанс выжимал, тут думаю выйдет на порядок побыстрее просто из-за асинхронщины

Artem
28.09.2017
11:43:00
светлая мысль
про го

Ruslan
28.09.2017
11:43:45
на го тоже писал, просто не уверен, что в ближайшие пару лет будет такая нагрузка, чтобы писать на go

in favor
28.09.2017
11:44:43

Nikolay
28.09.2017
11:44:57
никакого рода прокси ты на sanic не напишешь

Ruslan
28.09.2017
11:45:20
клиент нужен, факт

in favor
28.09.2017
11:45:27
хмхм, ты имеешь ввиду какой-то asynchttpclient как в торнаде?

Nikolay
28.09.2017
11:45:44
а sanic - это простенький сервер, который ни во что больше не умеет, кроме как отвечать на реквесты

in favor
28.09.2017
11:47:06
ну вот почему бы сразу не сказать: "Да, как в торнаде, простой клиент"

Nikolay
28.09.2017
11:47:46
и не "как в торнаде", а вообще клиента нет

in favor
28.09.2017
11:52:57
Ну я просто не совсем представил, что за клиент. Я мыслю торнадовскими терминами, потому что с ней работаю

Andrew
28.09.2017
12:50:19
Если чо - sanic зажевывает весь request body в память и только потом вызывает request handler. Легко сделать DDOS.
Плюс по мелочи -- HTTP headers это dict, одинаковые ключи не поддерживаются. Проверок гораздо меньше, значит sanic легче сломать передачей неправильных аргументов.
Мне flask-style не нравится, но это уже вопрос личных предпочтений.
По поводу производительности -- aiohttp медленней sanic в полтора раза на выдаче статических ответов.
Если есть бизнес логика и обращения к БД -- разница в скорости становится незаметной.

Google

Julia
28.09.2017
13:07:02

Александр
28.09.2017
13:08:54

Andrew
28.09.2017
13:10:10
aiohttp тоже нужно запускать на uvloop.
uvloop -- это не часть sanic, если мерять -- то на одинаковых event loops
Сейчас насколько помню польза от uvloop -- примерно 30%. Сам давно не мерял, кто-то недавно называл такие цифры.

Александр
28.09.2017
13:11:11

Andrew
28.09.2017
13:11:32
полтора раза -- это когда aiohttp на uvloop

Александр
28.09.2017
13:11:41
а, понял

Andrew
28.09.2017
13:11:48
весной мерял
в aiohttp тупо больше функционала и выше строгость, это сжирает производительность. Но мне надежность дороже.
Есть еще куда расти, понемногу оптимизируем. Процесс небыстрый и приоритет не самый большой. И так вполне ничего

in favor
28.09.2017
13:13:47
а в aiohttp Headers это какой-то класс как в торнадо?

Andrew
28.09.2017
13:14:15
https://pypi.python.org/pypi/multidict

in favor
28.09.2017
13:14:25
мерси

Nikolay
28.09.2017
13:15:44

in favor
28.09.2017
13:16:46
весной мерял
вы кстати нашли человека на вакансию в ocean.io?

Andrew
28.09.2017
13:18:07
Плюс https://pypi.python.org/pypi/yarl -- а sanic url requoting кажется не делает. flask делает, django тоже - а sanic нет.
Сделают -- разрыв еще сократится.
И да, test coverage в 84% -- это вообще ни о чём.
ищем
@deluxoft кого куда закапывать?

Ivan
28.09.2017
13:35:04
Подскажите, при просмотре манулов о подключение к базе данных, в них указывается пароль открыто - это правильно?

Google

Maxim robox
28.09.2017
13:36:35

Nikolay
28.09.2017
13:37:00
просмотр манулов

Александр
28.09.2017
13:40:51

Maxim robox
28.09.2017
13:41:20
https://12factor.net/

Александр
28.09.2017
13:41:46
И архитектура всяких там не скажу каких популярных фреймворков тоже хорошим практикам не способствует из коробки.

Admin
ERROR: S client not available

Ivan
28.09.2017
13:42:18

Александр
28.09.2017
13:42:25
Возьмите settings.py и вбейте пароли)

Maxim robox
28.09.2017
13:43:32

Dmitry
28.09.2017
14:06:09
Ребята, подскажите как создать пул процессов?

Nikolay
28.09.2017
14:07:09

Dmitry
28.09.2017
14:07:39
Мне нужно обрабатывать запросы поступающие через http, каждый запрос обрабатывается в отдельном процессе. Чтобы не создавать процессы каждый раз, я хоччу иметь их массив (пул), извлекать свободнын процессы для запросов.

Nikolay
28.09.2017
14:08:14

Dmitry
28.09.2017
14:08:33

Nikolay
28.09.2017
14:08:55
типа celery

Dmitry
28.09.2017
14:09:18
воркер - это процесс или поток?

Google

Nikolay
28.09.2017
14:09:37
смотря что тебе надо. В общем случае - процесс

Dmitry
28.09.2017
14:09:59
а где можно такую схему прочитать?

Nikolay
28.09.2017
14:10:48

Dmitry
28.09.2017
14:10:50
да, я создаю очередь, и хотелось бы извлекать из пула процессов свободный процесс и передавать ему из очереди задачу.

Nikolay
28.09.2017
14:11:32
зачем чего зря процессы создавать-убивать

Dmitry
28.09.2017
14:12:43
т.е. всем процессам из пула передать очередь, и они по мере ее наполнения сами будут брать задачи. так?

Nikolay
28.09.2017
14:12:54
ну или есть еще решение, вот, например https://khashtamov.com/ru/python-rq-howto/

Роман
28.09.2017
14:13:09

Nikolay
28.09.2017
14:13:13

Dmitry
28.09.2017
14:14:18
а как часто процессоры опрашивают очередь на наличие в ней задач?

Nikolay
28.09.2017
14:15:57
в futures будет так, как ты напишешь. Чаще всего процесс просто блокируется, пока сообщение не придет
в celery тебе об этом вообще думать не надо