- Одна копия telegram bot на python, Аноним, 23:38 , 25-Сен-19 (1)
Unix-way решение проблемы... Создаете отдельных пользователей на серверах, и раскидываете их SSH-ключи по серверам. Чтобы от этого пользователя на каждом сервере можно было подключиться на все остальные серваки.Перед тем, как стартануть бота, по SSH берете список процессов с каждого сервера. Если он там запущен, ничего не запускаете. Если запущенных процессов на других серверах нет, запускаете.
- Одна копия telegram bot на python, ABATAPA, 16:46 , 27-Сен-19 (2)
> Unix-way решение проблемы... > Создаете отдельных пользователей на серверах, и раскидываете их SSH-ключи по серверам. > Чтобы от этого пользователя на каждом сервере можно было подключиться на > все остальные серваки. > Перед тем, как стартануть бота, по SSH берете список процессов с каждого > сервера. Если он там запущен, ничего не запускаете. Если запущенных процессов > на других серверах нет, запускаете.Это bad-way. Между проверкой и запуском процесс может быть запущен и на первой машине. Нужно вводить блокировку — например, через файл, который создаётся атомарной операцией (создание файла и эксклюзивная запись), писать в него PID и машину процесса, при старте проверять возможность создания блокировки, жив ли процесс, и т. д. Существуют уже готовые средства кластеризации приложений (HA-кластеры). Кроме того, это можно сделать с помощью HA-кластера виртуализации (того же Proxmox).
- Одна копия telegram bot на python, Аноним, 12:49 , 28-Сен-19 (3)
>[оверквотинг удален] >> сервера. Если он там запущен, ничего не запускаете. Если запущенных процессов >> на других серверах нет, запускаете. > Это bad-way. Между проверкой и запуском процесс может быть запущен и на > первой машине. > Нужно вводить блокировку — например, через файл, который создаётся атомарной операцией > (создание файла и эксклюзивная запись), писать в него PID и машину > процесса, при старте проверять возможность создания блокировки, жив ли процесс, > и т. д. > Существуют уже готовые средства кластеризации приложений (HA-кластеры). > Кроме того, это можно сделать с помощью HA-кластера виртуализации (того же Proxmox). Вы переусложняете. Требования High Availability не было. Требования проверки здоровья процесса не было. Нам ничего не рассказали о логике запуска этой программы. Мой ответ покрывает базовую часть, как из того, что есть, сделать проверку, запущен ли экземпляр программы на другом сервере. Если появятся уточнения, я разовью идею дальше. Как вариант, роботу после входа писать в чат, что он вошёл в такое-то время. Все роботы, у которых вход до этого времени, должны немедленно выйти. Но это оффтопик для этого форума.
- Одна копия telegram bot на python, fantom, 15:33 , 16-Июл-20 (5)
> Подскажите средство для того чтобы всегда была запущена только одна копия python > скрипта на разных серверах, которая запускает бота > Иначе, если запущено 2 бота, то сообщения в чате дублируются Переделать скрипт, скорее всего достигнут "порог некомпетентности" скрипта. Если данные дублируются, вероятнее всего источник данных для скриптов на разных серверах один и тот же, достаточно добавить механизм проверки отослано или нет сообщение и количество скриптов перестанет быть проблемой.
|