
Bogdan (SirEdvin)
23.07.2019
18:47:58

Tishka17
23.07.2019
18:48:18


Alex
23.07.2019
18:49:33
SportSchema это что?
class SportSchema(Schema):
id = fields.Int()
code = fields.Str()
name = fields.Str()
abbreviation = fields.Str()
class Meta:
unknown = EXCLUDE
@post_load
def make(self, data, **kwargs):
data["sport_id"] = data.pop("id")
return data
class SportsSchema(Schema):
sports = fields.Nested(SportSchema, many=True)

Google

Tishka17
23.07.2019
18:50:27


GamiD
23.07.2019
18:52:58
кто знает как можно перехватить трафик websocket приложения
burp suite почему та не видит

Pavel
23.07.2019
18:54:18

Nplsnk
23.07.2019
18:54:47

GamiD
23.07.2019
18:55:38

Nplsnk
23.07.2019
18:57:36

GamiD
23.07.2019
18:58:05
Это как бурп
Спасибо попробую ранее не слышал о нем ещё есть какие ни будь аналоги?

Проксимов
23.07.2019
18:58:13

Pavel
23.07.2019
18:58:13
в самом крайнем случае можно и ваершарком посмотреть
а вот как - это действительно не про питон

GamiD
23.07.2019
18:59:14

Google

Shieldy
23.07.2019
19:02:32
Добро пожаловать, @Localethereum0!
Не забудь ознакомиться с правилами чата.
https://t.me/ru_python/802295

Pavel
23.07.2019
19:05:04

Bogdan (SirEdvin)
23.07.2019
19:08:16

Tishka17
23.07.2019
19:09:01
Internally aioodbc employs threads to avoid blocking the event loop
Окей
Так я и без коннектора могу

Bogdan (SirEdvin)
23.07.2019
19:10:04
Ну и поддерживаю комментаторов выше, Если нет, значит не уперся ваш oracle в основном никому на python

Tishka17
23.07.2019
19:10:42
Да в общем, большинству и asyncio нафиг не нужен

Pavel
23.07.2019
19:10:56
асинк что, секта? как сап?

Tishka17
23.07.2019
19:11:09
Похоже
Нет, подход прикольный. Но эффект, имхо, не заслуживает возьни

Bogdan (SirEdvin)
23.07.2019
19:12:17
Ну, я как человек, который еще не успел привыкнуть к тредпулам могу сказать, что тредпулы для меня выглядят более странным вариантом

Pavel
23.07.2019
19:14:38
ну а кодерки с многолетним стажем смотрят на асинкхайп с легким недоумением

Tishka17
23.07.2019
19:14:55
Ну вообще если речь про веб, мне в 90% случаев хватает обычного uwsgi/gunicorn безо всяких тредпулов. Если не про веб тут есть варианты

?? Eugene
23.07.2019
19:17:55
можешь заюзать tmux
В эпоху докеров, кубернетесов, CI/CD и serverless мы запускаем несколько тасков в tmux. Ладно хоть не на шареде :)

Bogdan (SirEdvin)
23.07.2019
19:19:02
Хорошо. А как ты гарантируешь, что у тебя луп никогда не заблокируется?
А как вы гарантируете, что у вас в коде не возникнет вечного while: True? Никак, словите в тестах/на продакшене.
Я пока ловил один раз такое в синхронном коде, и 0 в асинхронном. Я конечно, не показатель, но мне кажется, что проблема блокировки основного треда не настолько серьезная.

Tishka17
23.07.2019
19:19:39

Pavel
23.07.2019
19:20:01

Google

Bogdan (SirEdvin)
23.07.2019
19:20:21

Tishka17
23.07.2019
19:20:22
треду пулы и фьючеры - тоже асинхронность. Мы конкретно про asyncio

Pavel
23.07.2019
19:21:11
давайте еще стеклесс с его тасклетами вспомним

Tishka17
23.07.2019
19:21:13
я не про gevent, если что. А про самую обычную конфигурацию

Bogdan (SirEdvin)
23.07.2019
19:21:23

Alexander
23.07.2019
19:21:31
Вакансия
Munchen, Germany
Python Developer (m/f/d)
Responsibilities
- Create features that add value for our customers
- Design, implement and test reliable APIs
- Work with and integrate various cloud services
- Harden interfaces against possible failures
- Stay up to date with the Python/Cloud community
- Learn about and experiment with new tech coming from inside and outside the Python / Cloud ecosystem
Requirements
- 2+ years or more experience building Software
- Fluent in English
- The desire to learn and apply new technologies
- Solid knowledge about git
- Willingness to work in an agile team with quickly evolving requirements and frequent releases
- Passion for elegant and well-structured code
- Enjoy working and experimenting with new technologies
Вилка: 50-70тевро/год
#работа #офис

Tishka17
23.07.2019
19:21:47

Bogdan (SirEdvin)
23.07.2019
19:21:53
Если там 500 клиентов и 4 воркера, то одновременно обрабатывается 4 запроса, остальные в очереди сидят

Alexander
23.07.2019
19:22:03

Tishka17
23.07.2019
19:22:04


Bogdan (SirEdvin)
23.07.2019
19:22:34
И если вы попали на while: True, то технически это аффектит всех клиентов, потому что воркеров на их запросы теперь только 3

Alexander
23.07.2019
19:22:40

Проксимов
23.07.2019
19:22:46

Tishka17
23.07.2019
19:22:52

Pavel
23.07.2019
19:23:09

?? Eugene
23.07.2019
19:23:19

Google

Tishka17
23.07.2019
19:23:22

Bogdan (SirEdvin)
23.07.2019
19:23:43
Ну вы же не запускаете async приложение прямо само по себе

Tishka17
23.07.2019
19:23:49
и да, gunicorn по дефолту убивает воркер если тот не ответил за определенное время. Что ещё снижает цену ошибки

Alexander
23.07.2019
19:23:56

Tishka17
23.07.2019
19:24:09

?? Eugene
23.07.2019
19:24:15
Вон оно че, европа...

Pavel
23.07.2019
19:24:38
м/ж и не определился
а что, это имеет значение для кодерков? те, кто "само решит", кодят лучше девочек, которые лучше мальчиков?

?? Eugene
23.07.2019
19:25:22

Alexander
23.07.2019
19:25:23

?? Eugene
23.07.2019
19:25:41
Знаменитой, €вропейской

Bogdan (SirEdvin)
23.07.2019
19:25:54
в смысле?
Ну, вы так же запускате условный саник в n воркеров, даже потому, что есть синхронные куски кода типо парсинга и всего прочего

Pavel
23.07.2019
19:26:08

Alexander
23.07.2019
19:28:32

Tishka17
23.07.2019
19:28:44

Pavel
23.07.2019
19:28:56

Bogdan (SirEdvin)
23.07.2019
19:29:51

Tishka17
23.07.2019
19:30:30
ну у меня в проде прога с сегфолтом падала =)

Bogdan (SirEdvin)
23.07.2019
19:30:30
Особенно что бы это реально был while;True. а не просто синхронный сетевой запрос, который тоже просто деграднет перформанс

Tishka17
23.07.2019
19:30:46
тоже свлит всех кто сидит на воркере
ну и вообще речь шла не о whule True, а о других синхронных запросах с непредсказуемым временем овтета

Google

Tishka17
23.07.2019
19:31:31

Bogdan (SirEdvin)
23.07.2019
19:32:25
То есть оно будет тупить, но все еще работать

Tishka17
23.07.2019
19:32:58
синхронный запрос в БД увеличит задержку ответа всем на время выполнения этого запроса. Например до бесконечности

Bogdan (SirEdvin)
23.07.2019
19:33:07
Почему до бесконечности то?

Tishka17
23.07.2019
19:33:46
потому что кое-кто не подумал и не поставил сетевые таймауты, а умные админы режут все tcp соединения которые не юзаются несколько минут
это я про себя
и пингов не было в пуле
в итоге все ждали на ngixnx, воркер рестартовал по таймауту и люди продолжали работать.
я такую ошибку больше не повторю, но сколько их ещё бывает


Ivan
23.07.2019
19:44:30
Доброе время суток!
Подскажите что не так делаю
class Second(object):
def __init__(self, ar=[]):
self.ar = ar
@classmethod
def upload(cls, **kwargs):
obj = cls()
for key in kwargs:
if key in obj.__dict__.keys():
if key == 'ar':
for ar_i in kwargs[key]:
obj.add_ar(ar_i)
else:
obj.__dict__[key] = kwargs[key]
return obj
def add_ar(self, *args):
for ar_i in args:
self.ar.append(ar_i)
print (ar_i)
class First(object):
def __init__(self, a_link=None):
self.a_link = a_link if a_link else Second()
@classmethod
def upload(cls, **kwargs):
obj = cls()
for key in kwargs:
if key in obj.__dict__.keys():
if key == 'a_link':
obj.a_link = Second.upload(**kwargs[key])
else:
obj.__dict__[key] = kwargs[key]
return obj
выполняю код
import test_class
d = test_class.First.upload(a_link={"ar":[4, 4, 4]})
f = test_class.First.upload(a_link={"ar":[4, 4, 1]})
результат: