
BlackAndOrange
21.11.2018
12:31:11
А epoll опирается на файловые дескрипторы

Ilia
21.11.2018
12:31:22
Тааак?

Google

Ilia
21.11.2018
12:31:33
И ?

BlackAndOrange
21.11.2018
12:31:37
А файловые дескрипторы внутри одного процесса одни и те же
Кажется, asyncio тупо перехватывает всё происходящее и до сторонней библиотеки ничего не доходит.
Список наблюдения внутри одного процесса один

Ilia
21.11.2018
12:32:28
Ну, да, НАБОР их один и тот же, но epoll -то те дескрипторы, с которыми работает, явно принимает.

BlackAndOrange
21.11.2018
12:32:41
Соответственно, asyncio делая epoll_wait(), получает все ивенты
В том числе те, которые нужны не ему

Ilia
21.11.2018
12:33:05
Сейчас, я только уточню...

BlackAndOrange
21.11.2018
12:33:50

Cykooz
21.11.2018
12:35:20
Проблематично, asyncio запускается почти сразу
Если не ошибаюсь, то запускать его должен ты сам из своего кода. Там даже евент-луп не создаётся сам без пинка. Так что ты вполне можешь свой код запуска поправить так, что бы первое что он делал - запускал доп. процессы, и только потом начинал инициализацию приложения и его запуск

Ilia
21.11.2018
12:35:59
epol_create же создаёт дескриптор epoll-структуры, в рамках которой идёт вся дальнейшая работа, вроде бы.
Две части программы должы создавать каждая свой дескриптор, и они не должны конфликтовать, по идее.
Может там что-то другое?

Cykooz
21.11.2018
12:37:46
Вероятно у него проблема в том, что два "евент-лупа" в одном процессе (и треде) в принципе не могут работать "параллельно". Работать будет только один из них.

Ilia
21.11.2018
12:38:33

Google

Cykooz
21.11.2018
12:39:04
Что бы можно было встроится, надо что бы твоя старая либа использовала event-loop от asyncio, или наоборот
По другому - только через треды или процессы

Ilia
21.11.2018
12:39:31


BlackAndOrange
21.11.2018
12:39:39
Если не ошибаюсь, то запускать его должен ты сам из своего кода. Там даже евент-луп не создаётся сам без пинка. Так что ты вполне можешь свой код запуска поправить так, что бы первое что он делал - запускал доп. процессы, и только потом начинал инициализацию приложения и его запуск
>>> os.listdir('/proc/13092/fd')
['0', '1', '2', '3']
>>> import asyncio
>>> os.listdir('/proc/13092/fd')
['0', '1', '2', '3', '4']
>>>
asyncio засирает fd самим фактом своего импорта

Ilia
21.11.2018
12:40:45

Cykooz
21.11.2018
12:40:55

Ilia
21.11.2018
12:40:58
Скорее всего это epoll оно и создаёт

BlackAndOrange
21.11.2018
12:41:13

Ilia
21.11.2018
12:41:29

Stannis
21.11.2018
12:41:35
Объясните пожалуйста еще один момент
Накой нужен WSGI есть все фреймворки умеют биндится на TCP порт. Или с WSGI может выдержать больше соединений чем тот же Фласк или Торнадо?

BlackAndOrange
21.11.2018
12:41:40

Cykooz
21.11.2018
12:42:30

Ilia
21.11.2018
12:42:32

Aleksandr
21.11.2018
12:42:41
Подскажите как сделать ассоциативный массив?
d [a][]= prop

Cykooz
21.11.2018
12:43:11
Я точно знаю, что можно в разных тредах запустить разные евент-лупы и они будут работать независимо

El Mariachi
21.11.2018
12:43:30

BlackAndOrange
21.11.2018
12:43:32
Разные ивент-лупы могут запросто шарить один epoll

Ilia
21.11.2018
12:43:49

Google

Tony
21.11.2018
12:44:18

LighteR
21.11.2018
12:44:23

BlackAndOrange
21.11.2018
12:44:33
Факт в том, что asyncio так или иначе ломает работу epoll
Я проверил это на минимальном примере

Ilia
21.11.2018
12:44:38

BlackAndOrange
21.11.2018
12:44:56

Aleksandr
21.11.2018
12:45:09
у а 10 свойств и все их нужно в одном списке сохранить

El Mariachi
21.11.2018
12:45:51

Ilia
21.11.2018
12:46:32

Aleksandr
21.11.2018
12:46:32
У меня цикл... сначало prop1 потом на след итерации prop2

BlackAndOrange
21.11.2018
12:46:42

Aleksandr
21.11.2018
12:46:46
d[a] = [prop] ?

BlackAndOrange
21.11.2018
12:46:49
Файловые дескрипторы шарятся между процессами
Автоматически
Пруф: подпроцесс может писать на STDOUT

Ilia
21.11.2018
12:47:11

BlackAndOrange
21.11.2018
12:47:31

Ilia
21.11.2018
12:47:44

El Mariachi
21.11.2018
12:47:44

Google

Ilia
21.11.2018
12:47:59

BlackAndOrange
21.11.2018
12:48:03

Cykooz
21.11.2018
12:48:46

BlackAndOrange
21.11.2018
12:49:03
Пока копаю в сторону https://www.python.org/dev/peps/pep-0433/

Ilia
21.11.2018
12:49:47

BlackAndOrange
21.11.2018
12:49:57

Ilia
21.11.2018
12:51:35

Andrew
21.11.2018
12:51:39

Ilia
21.11.2018
12:51:57

BlackAndOrange
21.11.2018
12:52:03

Ilia
21.11.2018
12:52:15
Ты ж видел, 4ый

Aleksandr
21.11.2018
12:52:24

BlackAndOrange
21.11.2018
12:52:25
В продакшне я б на это не расчитывал особо

Ilia
21.11.2018
12:52:59
Просто твоя библиотека видимо в таблицу дескрипторов открытых файлов из CRT напрямую лазит...
Ну, я б за такое просто кочергу в зад...

Cykooz
21.11.2018
12:53:14
Найти б ещё который
Питон сам по себе ничего не импортирует. То что у тебя asyncio импортируется раньше чем будет запущена "стартовая" функция - это ты вполне можешь разрулить.

Ilia
21.11.2018
12:53:57

Alex
21.11.2018
12:54:09

BlackAndOrange
21.11.2018
12:54:16

Google

El Mariachi
21.11.2018
12:54:27

Aleksandr
21.11.2018
12:54:47
русская кодировка в UTF

Ilia
21.11.2018
12:55:01

El Mariachi
21.11.2018
12:56:00

Казимир
21.11.2018
12:59:05
Всем привет! Как запустить метод класса асинхронно/в другом потоке?

El Mariachi
21.11.2018
13:01:50
так асинхронно или в другом потоке?

Alex
21.11.2018
13:02:15

Aleksandr
21.11.2018
13:03:24

Alex
21.11.2018
13:04:31

El Mariachi
21.11.2018
13:05:00
он d['art'] = [] забыл написать )

Ilia
21.11.2018
13:06:00

Alex
21.11.2018
13:06:11

Ilia
21.11.2018
13:06:20
Типа "учебник не читал, но написать надо"?

El Mariachi
21.11.2018
13:06:55

Alex
21.11.2018
13:06:58
это везде так... я вчера уже сокрушался по поводу новичков

Ilia
21.11.2018
13:07:11
Ох...

Alex
21.11.2018
13:07:12
новички никогда не меняются

El Mariachi
21.11.2018
13:07:36

Alex
21.11.2018
13:07:41
на правах пятничного флейма, вспоминая времена когда интернет был не у всех и медленный... прекрасные же были времена.

El Mariachi
21.11.2018
13:07:44
новички тоже разные бывают