powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / выгрузить телеграмбот
34 сообщений из 34, показаны все 2 страниц
выгрузить телеграмбот
    #39897588
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при редеплое варника телеграмбот остаётся в памяти как отдельный поток/приложение...
как его можно выгрузить, чтоб был только один экземпляр
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897592
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставить сервер приложений, который без багов поддерживает redeploy

Написать сервис реквест в поддержку сервера приложений. Если он купленный - служба саппорта должна дать какой-то ответ и что-то посоветовать.
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897595
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема не ясна, не понятно как связаны варник редеплой и какой-то телеграмбот.
Классическое решение закрытия потока - это постоянный опрос на флаг\ивент\состояние БД. Если триггер срабатывает - поток завершаем. Как это реализовать по огрызку я хз. Что не получается?
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897596
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вообще, предлагаю модераторм закрыть данный топик.

1. Сервер приложений - не указан
2. что за "телеграм бот" - тоже
3. кода нет

Сферичность коня в вакууме зашкаливает. С учетом того, что Вадя не первый день на форуме - закрыть тему нафиг. Брать пример с подфорума "вакансии". IMHO & AFAIK

Правила_форума Рекомендации
Не рекомендуется:

Публиковать сообщения с бессмысленными темами. Например: <Люди помогите>, <Проблема!!>, <Срочно нужна помощь!>, <может знаете?> и т.д.
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897599
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Действительно. Ты всем крышу снес телеграмботом. Он причем?
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897622
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор. Вот этот имеется в виду?

https://github.com/rubenlagus/TelegramBots
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897630
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть tomcat
есть варник
в варнике запускается талеграмм-бот
всё работает нормально.
Leonid Kudryavtsev
что за "телеграм бот" - тоже
ты не знаешь что такое телеграммбот?

Leonid Kudryavtsev
3. кода нет
вот код запуска бота
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
        ApiContextInitializer.init();
        DefaultBotOptions botOptions = ApiContext.getInstance(DefaultBotOptions.class);
        botOptions.setProxyHost("127.0.0.1");
        botOptions.setProxyPort(9050);
        botOptions.setProxyType(DefaultBotOptions.ProxyType.SOCKS5);
        bot = new Bott(botOptions);
        try {
            telegramBotsApi.registerBot(bot);
        } catch (TelegramApiException e) {
           e.printStackTrace();
        }
        


PetroNotC Sharp
Ты всем крышу снес телеграмботом. Он причем?
при том что мне надо его выгрузить из памяти. потому как при деплое обновлённого варника пишет что порт уже используется и приходится убивать процесс java
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897637
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
org.apache.catalina.startup.HostConfig.undeploy Undeploying context [/test]
03-Dec-2019 18:01:39.022 WARNING [Catalina-utility-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [test] appears to have 
started a thread named [Bob1 Telegram Connection] but has failed to stop it. This is very likely to create a memory
 leak. Stack trace of thread:
 java.base@14-ea/sun.nio.ch.Net.poll(Native Method)
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897653
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя

ты не знаешь что такое телеграммбот?

Почему я должен знать, что это такое?

Что такое телеграм, я знаю из новостей благодаря РосПотребНадзору, но сам его в глаза не видел. Нафиг он вообще нужен и его API ?

Погуглил (т.к. вы даже на прямой намек, не подумали дать url на сее чудо)
https://github.com/rubenlagus/TelegramBots
TelegramBotsJava library to create bots

вадя

при редеплое варника...

Обратиться к автору WAR'ника

ПОВТОРЯЮ СВОЕ МНЕНИЕ:
Тему нужно закрывать. По сообщениям от автора темы:
1. Развоение личности детектед - У нас же спрашивает, почему его приложение не редеплоится
2. Мения величия детектед - Т.к. считает, что он написал Телеграмбот, который все должны знать. Сюжу по вопросы "вы не знаете, что такое [мною написанный] телеграмбот" ?

p.s.
причину проблемы я знаю, т.к. она совершенно понятна и банально. Но тут "У нас есть ТАКИЕ приборы! Но мы вам о них не расскажем" ( С )

[сдесь должна была быть ссылка на клип Манго-Манго Аквалангисты, но я его не нашел]
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897671
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Тему нужно закрывать. По сообщениям от автора темы:
если ты не знаешь что такое телегамбот - какого хера лезешь?
нахватался манер с SO и хабра?
Leonid Kudryavtsev
Погуглил (т.к. вы даже на прямой намек, не подумали дать url на сее чудо)
https://github.com/rubenlagus/TelegramBots
ты чё? думаешь я не читал ничего прежде чем написать работающего бота?
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897676
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
если ты не знаешь что такое телегамбот - какого хера лезешь?
его тут никто не знает и он никому не нужен.
Какая разница, какая программа порт держит?
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897679
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-хорошему да, надо катать баг на авторов телеграм апи.
По-быстрому - можно самому решить проблему. Либо молотком и кувалдой - принудительно найдя и стопнув поток, либо воспользовавшись либой - https://java.jiderhamn.se/2012/03/04/classloader-leaks-vi-this-means-war-leak-prevention-library/.
У него есть серия статей по мемори ликам из 6 частей, советую почитать
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897682
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Узнать id процесса на порту. Грохнуть процесс.
Так?
Не догадался?
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897688
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник
По-хорошему да, надо катать баг на авторов телеграм апи.

Полностью ошибаетесь. Это не может быть баг ПО ОПРЕДЕЛЕНИЮ

Баг - это ошибка в программе, программном коде. Но для этого этот програмный код должен существовать. Не может быть багом то. чего вообще нет. Максимум - фича реквест.
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897690
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

Вообще-то, там сорцы есть
Проблема решается 5-25 строчками кода, максимум
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897695
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Узнать id процесса на порту. Грохнуть процесс.
Так?
Не догадался?
ну написать
killall java
большого ума не надо, это когда одно приложение под кошаком работает и идёт отладка
PetroNotC Sharp
его тут никто не знает и он никому не нужен.
Какая разница, какая программа порт держит?
ну дак зачем наезжать?
забыл ник
По-хорошему да, надо катать баг на авторов телеграм апи.
По-быстрому - можно самому решить проблему. Либо молотком и кувалдой - принудительно найдя и стопнув поток, либо воспользовавшись либой - https://java.jiderhamn.se/2012/03/04/classloader-leaks-vi-this-means-war-leak-prevention-library/.
У него есть серия статей по мемори ликам из 6 частей, советую почитать
как всё сложно... оказывается...
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897697
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Вообще-то, там сорцы есть
Проблема решается 5-25 строчками кода, максимум
давай, я за этим вопрос и задал
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897709
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
давай, я за этим вопрос и задал
код полный давай.
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897710
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
большого ума не надо, это когда одно приложение под кошаком работает и идёт отладка
именно. У тебя и есть не продакшен а отладка.
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897715
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
именно. У тебя и есть не продакшен а отладка.
ага, вот только как быть с продакшеном? тоже таким же способом?
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897721
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
код полный давай.
это полный код запуска

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
     TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
        ApiContextInitializer.init();
        DefaultBotOptions botOptions = ApiContext.getInstance(DefaultBotOptions.class);
        botOptions.setProxyHost("127.0.0.1");
        botOptions.setProxyPort(9050);
        botOptions.setProxyType(DefaultBotOptions.ProxyType.SOCKS5);
        bot = new Bott(botOptions);
        try {
            telegramBotsApi.registerBot(bot);
        } catch (TelegramApiException e) {
           e.printStackTrace();
        }



вот подключение
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
public class Bott extends TelegramLongPollingBot {

    public static final String CONFIGURATION_BOT_FILE = Singleton.getWeb_location() +  "/config/bot_config.properties";
    public static String ChatId = "";
    public static String ChatId = "";
    public static String BOT_NAME;
    public static String BOT_TOKEN;

    public Bott(DefaultBotOptions options) {
        super(options);
        Properties botSettings = new Properties();

        try (InputStream is = new FileInputStream(new File(CONFIGURATION_BOT_FILE))) {
            botSettings.load(is);
            BOT_NAME = botSettings.getProperty("BotName");
            BOT_TOKEN = botSettings.getProperty("BotToken");

            System.out.println("BOT_NAME  " + BOT_NAME);
            System.out.println("BOT_TOKEN  " + BOT_TOKEN);

        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
....

}
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897726
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
это полный код запуска
где расположен?
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897731
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
забыл ник
По-хорошему да, надо катать баг на авторов телеграм апи.

Полностью ошибаетесь. Это не может быть баг ПО ОПРЕДЕЛЕНИЮ

Баг - это ошибка в программе, программном коде. Но для этого этот програмный код должен существовать. Не может быть багом то. чего вообще нет. Максимум - фича реквест.

Может ошибаюсь, а может и нет. Если дело на самом деле в том, что при
Код: java
1.
2.
ApiContextInitializer.init();
        DefaultBotOptions botOptions = ApiContext.getInstance(DefaultBotOptions.class);


Этот бот меняет какое-нибудь проперти статического класса, тем самым создавая стронг ссылку на себя и препятствую GC собрать класслоадеру - то это абсолютно точно баг, который должен быть пофикшен, я не скажу что он major или critical но точно баг
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897746
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
где расположен?
в синглтоне (запуск)
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897750
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
синглтоне
зло
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897751
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
зло
это твоё мнение....
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897752
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
PetroNotC Sharp
зло
это твоё мнение....
но не работает у тебя)
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897762
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
но не работает у тебя)
это не влияет
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897767
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
если ты не знаешь что такое телегамбот - какого хера лезешь?
Да какая разница Далеко или Рядом???
У контекста (приложения, развёртываемого в сервлет-контейнере) есть жизненный цикл, есть события и методы init/destroy.
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897770
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

главное корректно завершить работу этого бота

если работаешь со Spring и запускаешь телеграм бота в бине - то реализуй
Код: java
1.
org.springframework.beans.factory.DisposableBean



если Spring не юзаешь - то точка входа в твое приложение -
Код: java
1.
javax.servlet.ServletContextListener

, соответснно там в
Код: java
1.
void contextDestroyed(ServletContextEvent var1)

останавливай бота
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897783
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13-Oct был создан issue с пояснением "stop method never exits"

https://github.com/rubenlagus/TelegramBots/issues/680

Это похоже на нашу ситуацию?
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897826
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavel_nv
останавливай бота
где это я знаю, вопрос как его остановить?
mayton
13-Oct был создан issue с пояснением "stop method never exits"

https://github.com/rubenlagus/TelegramBots/issues/680

Это похоже на нашу ситуацию?
вот только куда это вставить?
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897853
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, они стопают BotSession. Посмотри можно-ли от TelegramBotsApi получить этот объект сессии.
...
Рейтинг: 0 / 0
выгрузить телеграмбот
    #39897889
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
вадя, они стопают BotSession. Посмотри можно-ли от TelegramBotsApi получить этот объект сессии.
вот так работает

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
        ApiContextInitializer.init();
        DefaultBotOptions botOptions = ApiContext.getInstance(DefaultBotOptions.class);
        botOptions.setProxyHost("127.0.0.1");
        botOptions.setProxyPort(9050);

        botOptions.setProxyType(DefaultBotOptions.ProxyType.SOCKS5);
        bot = new Bott(botOptions);
        try {
           botSession = telegramBotsApi.registerBot(bot); // было  telegramBotsApi.registerBot(bot);
        } catch (TelegramApiRequestException ex) {
            ex.printStackTrace();
        }



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class ServletListener implements ServletContextListener {

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
       
       Singleton.botSession.stop();
        
    }
}
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / выгрузить телеграмбот
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]