
Tishka17
15.07.2019
11:14:48
Делай все в один :)

Slam! 538
15.07.2019
11:15:03

МишанЯ
15.07.2019
11:15:06

Tishka17
15.07.2019
11:15:32

Google

Slam! 538
15.07.2019
11:15:34
Пришел апдейт
Вызвал соответствующий хандлер в потоке

Алексей
15.07.2019
11:15:54
А как можно в бесконечном цикле ждать сообщений от подпроцесса(который тоже работает вечно), и читать данные? Или лучше это сделать через multiprocessing.Process?

МишанЯ
15.07.2019
11:15:55

Tishka17
15.07.2019
11:16:04

Slam! 538
15.07.2019
11:16:06

Ананас
15.07.2019
11:16:11
так.
сейчас объясню как это работает.
клиент создает n потоков для общения с серверами.
и у него есть поток, которому нужно знать, активно ли соединение с каждым сервером.
он эти данные пишет в json.
для каждого потока есть булька, которая является статусом активности соединения, она изменяется, если соединение разрывается из-за каких-либо причин.
и булька служит параметром для записи.
в итоге в json клиент запишет либо [0,1,2] (при бульках true на всех трех серверах) допустим, либо [dead, 1, dead], при false, true, false

Slam! 538
15.07.2019
11:16:40

Tishka17
15.07.2019
11:16:52

Slam! 538
15.07.2019
11:17:21
ну с ВК работать кака-бяка

Tishka17
15.07.2019
11:19:10
Maksim если это вакансия - оформи нормально. Если нет - тем более

Ананас
15.07.2019
11:19:11
так.
сейчас объясню как это работает.
клиент создает n потоков для общения с серверами.
и у него есть поток, которому нужно знать, активно ли соединение с каждым сервером.
он эти данные пишет в json.
для каждого потока есть булька, которая является статусом активности соединения, она изменяется, если соединение разрывается из-за каких-либо причин.
и булька служит параметром для записи.
в итоге в json клиент запишет либо [0,1,2] (при бульках true на всех трех серверах) допустим, либо [dead, 1, dead], при false, true, false
эта логика работает, но мне похоже где-то удалось налюбиться.
в итоге если клиент не цепляется к серверам - то все нормально, в json будет [dead, dead, dead], если запущу на одной из машин - будет [0, dead, dead], но если убить сервер на этой машине принудительно, то сколько не жди, значение не сменится

Slam! 538
15.07.2019
11:20:21
сокет так просто не убьешь

Google

Slam! 538
15.07.2019
11:20:54
запросы на коннект он видеть еще будет, а процесса-обработчика как такового уже нет

Tishka17
15.07.2019
11:21:01
А он send у тебя вообще делает хоть иногда?
Вообще это корректно так делать?

МишанЯ
15.07.2019
11:21:44
Как работает у меня код. Идёт requests запрос длительный longpoll. Ждёт ждёт...бац, пришло сообщение. Выдергивпю это сообщение и отдаю его потоку, чтобы он его обрабатывал и потом выслал ответ тому человеку или ещё что то, НО основная программа должна в это время продолжать ждать новые сообщения, т.е создаётся новый longpoll запрос. Представляете, когда борту будут писать через 1 секунду хотябы человек 10, это он пока отошлет ответ первому, сделает запрос, возмет ондующее сообщение и опять уйдёт на обработку. А там ещё 10 напишет и будет вочереди у ВК лежать останется 18 сообщений которые также надо обработать.

Tishka17
15.07.2019
11:22:24

Ананас
15.07.2019
11:22:46
send делает.
но я хочу понять, почему settimeout не работает и булька после выхода тайм-аута не false-ится.

Slam! 538
15.07.2019
11:22:55

МишанЯ
15.07.2019
11:23:01
От одного человека - нет
Каждое сообщение - это новое событие и его надо обработать, без рщницы от кого. Это новое уведомление в любом случае.

Tishka17
15.07.2019
11:23:24

Ананас
15.07.2019
11:23:54
протестил с settimeout, ничего не изменилось, вот именно

МишанЯ
15.07.2019
11:24:23
и в чем проблема?
То что 1 cpu на vps рублей за 100 в месяц тариф в этих потоках помрет нахрен, в том и проблема?

Slam! 538
15.07.2019
11:24:37

Tishka17
15.07.2019
11:24:54
Не надо запускать 1000000 потоков разом
С твоими знаниями о потоках только за асинкио браться

МишанЯ
15.07.2019
11:25:28

Slam! 538
15.07.2019
11:25:46

Tishka17
15.07.2019
11:25:53

Google

Slam! 538
15.07.2019
11:26:35

Tishka17
15.07.2019
11:26:51

Slam! 538
15.07.2019
11:27:38

Tishka17
15.07.2019
11:27:48
Да он говно :)
Вообще хз зачем его берут

Slam! 538
15.07.2019
11:28:18
В частности, документация

Tishka17
15.07.2019
11:29:34

МишанЯ
15.07.2019
11:29:39
Можно попробовать 2 потока. 1 longpoll все время, получил - положил на полку, побежал за следующим. А другой увидел на полке, взял и обработал, следущий с полки взял. Только что бы использовать в качестве полочки бы?

Slam! 538
15.07.2019
11:29:54

Denis
15.07.2019
11:29:57

Slam! 538
15.07.2019
11:30:07

Tishka17
15.07.2019
11:30:14

МишанЯ
15.07.2019
11:30:27
И как это отразиться на работе бота.(((

Tishka17
15.07.2019
11:30:45

Slam! 538
15.07.2019
11:30:51
Боже, возьми и проверь

МишанЯ
15.07.2019
11:30:58

Tishka17
15.07.2019
11:31:27

Slam! 538
15.07.2019
11:32:27
эта логика работает, но мне похоже где-то удалось налюбиться.
в итоге если клиент не цепляется к серверам - то все нормально, в json будет [dead, dead, dead], если запущу на одной из машин - будет [0, dead, dead], но если убить сервер на этой машине принудительно, то сколько не жди, значение не сменится
а когда ты убиваешь сервер, чтобы словить такой баг?

Ананас
15.07.2019
11:32:53

Google

Slam! 538
15.07.2019
11:33:04

Ананас
15.07.2019
11:33:08
в итоге либо connection error, либо timeout error.

Slam! 538
15.07.2019
11:34:02
Таймаут работает на открытии коннекта (рукопожатии)
А когда ты открыл, конечно ничего не будет. Насколько я знаю, у TCP ping-pong нету, как у тех же вебсокетов, поэтому он и обрубает когда на втором конце молчат

Tishka17
15.07.2019
11:36:22
Только надо читать и писать для этого
По дефолту начинается часа через 4 что ли

Slam! 538
15.07.2019
11:37:49
На практике таймаут скорее обрубает
Тишка че мыслей нет на этот счёт?

Адам
15.07.2019
11:52:45
Я думаю освоить эту профессию
Нет я быстрый просто надо было отлучится

Denis
15.07.2019
11:59:01
Ты и без него можешь заработать

Andrew
15.07.2019
11:59:53
Как не загляну тут Алиса

omgdatsvalya
15.07.2019
11:59:56
Идти в программирование ради денег? Серьезно?))
Любая профессия же должна быть в кайф ну

Slam! 538
15.07.2019
12:00:26

Олег
15.07.2019
12:01:07