<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Одна копия telegram bot на python</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10281.html</link>
    <description>Подскажите средство для того чтобы всегда была запущена только одна копия python скрипта на разных серверах, которая запускает бота&lt;br&gt;Иначе, если запущено 2 бота, то сообщения в чате дублируются&lt;br&gt;</description>

<item>
    <title>Одна копия telegram bot на python (fantom)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10281.html#5</link>
    <pubDate>Thu, 16 Jul 2020 12:33:45 GMT</pubDate>
    <description>&amp;gt; Подскажите средство для того чтобы всегда была запущена только одна копия python &lt;br&gt;&amp;gt; скрипта на разных серверах, которая запускает бота &lt;br&gt;&amp;gt; Иначе, если запущено 2 бота, то сообщения в чате дублируются &lt;br&gt;&lt;br&gt;Переделать скрипт, скорее всего достигнут &quot;порог некомпетентности&quot; скрипта.&lt;br&gt;Если данные дублируются, вероятнее всего источник данных для скриптов на разных серверах один и тот же, достаточно добавить механизм проверки отослано или нет сообщение и количество скриптов перестанет быть проблемой.&lt;br&gt;</description>
</item>

<item>
    <title>Одна копия telegram bot на python (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10281.html#3</link>
    <pubDate>Sat, 28 Sep 2019 09:49:23 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; сервера. Если он там запущен, ничего не запускаете. Если запущенных процессов &lt;br&gt;&amp;gt;&amp;gt; на других серверах нет, запускаете.&lt;br&gt;&amp;gt; Это bad-way. Между проверкой и запуском процесс может быть запущен и на &lt;br&gt;&amp;gt; первой машине.&lt;br&gt;&amp;gt; Нужно вводить блокировку &amp;#8212; например, через файл, который создаётся атомарной операцией &lt;br&gt;&amp;gt; (создание файла и эксклюзивная запись), писать в него PID и машину &lt;br&gt;&amp;gt; процесса, при старте проверять возможность  создания блокировки, жив ли процесс, &lt;br&gt;&amp;gt; и т. д.&lt;br&gt;&amp;gt; Существуют уже готовые средства кластеризации приложений (HA-кластеры).&lt;br&gt;&amp;gt; Кроме того, это можно сделать с помощью HA-кластера виртуализации (того же Proxmox). &lt;br&gt;&lt;br&gt;Вы переусложняете.&lt;br&gt;Требования High Availability не было. Требования проверки здоровья процесса не было.&lt;br&gt;&lt;br&gt;Нам ничего не рассказали о логике запуска этой программы. Мой ответ покрывает базовую часть, как из того, что есть, сделать проверку, запущен ли экземпляр программы на другом сервере. Если появятся уточнения, я разовью идею дальше.&lt;br&gt;&lt;br&gt;Как вариан</description>
</item>

<item>
    <title>Одна копия telegram bot на python (ABATAPA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10281.html#2</link>
    <pubDate>Fri, 27 Sep 2019 13:46:32 GMT</pubDate>
    <description>&amp;gt; Unix-way решение проблемы...&lt;br&gt;&amp;gt; Создаете отдельных пользователей на серверах, и раскидываете их SSH-ключи по серверам. &lt;br&gt;&amp;gt; Чтобы от этого пользователя на каждом сервере можно было подключиться на &lt;br&gt;&amp;gt; все остальные серваки.&lt;br&gt;&amp;gt; Перед тем, как стартануть бота, по SSH берете список процессов с каждого &lt;br&gt;&amp;gt; сервера. Если он там запущен, ничего не запускаете. Если запущенных процессов &lt;br&gt;&amp;gt; на других серверах нет, запускаете.&lt;br&gt;&lt;br&gt;Это bad-way. Между проверкой и запуском процесс может быть запущен и на первой машине.&lt;br&gt;Нужно вводить блокировку &amp;#8212; например, через файл, который создаётся атомарной операцией (создание файла и эксклюзивная запись), писать в него PID и машину процесса, при старте проверять возможность  создания блокировки, жив ли процесс, и т. д.&lt;br&gt;Существуют уже готовые средства кластеризации приложений (HA-кластеры).&lt;br&gt;&lt;br&gt;Кроме того, это можно сделать с помощью HA-кластера виртуализации (того же Proxmox).&lt;br&gt;</description>
</item>

<item>
    <title>Одна копия telegram bot на python (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10281.html#1</link>
    <pubDate>Wed, 25 Sep 2019 20:38:57 GMT</pubDate>
    <description>Unix-way решение проблемы... &lt;br&gt;Создаете отдельных пользователей на серверах, и раскидываете их SSH-ключи по серверам. Чтобы от этого пользователя на каждом сервере можно было подключиться на все остальные серваки.&lt;br&gt;&lt;br&gt;Перед тем, как стартануть бота, по SSH берете список процессов с каждого сервера. Если он там запущен, ничего не запускаете. Если запущенных процессов на других серверах нет, запускаете. &lt;br&gt;</description>
</item>

</channel>
</rss>
