Как заставить телеграмм бота время от времени пинговать?

У меня есть уже готовый телеграмм бот на Java. Я хочу залить его на Heroku, но данный ресурс отключит моего бота если в течении 30 минут на него не будет трафика. Вопрос как можно заставить моего бота раз в 5-10 минут пинговать в гугл? Бот написан на Long pull.


Ответы (1 шт):

Автор решения: Boris Blindovich

В общем все было очень просто, я создал отдельный класс имплементирующий интерфейс Runable вот он:

    package Service.ping;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class PingThread implements Runnable{
    @Override
    public void run() {
        while (true){
            try {
                URL url = new URL("https://www.google.com/");
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.connect();
                connection.disconnect();
                Thread.sleep(300000);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }
}

и в методе main вызвал его таким образом:

public static void main(String[] args) {
    ApiContextInitializer.init();
    TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
    try{
        telegramBotsApi.registerBot(new Bot());
    } catch (TelegramApiRequestException e) {
        e.printStackTrace();
    }
    Thread pingThread = new Thread(new PingThread());
    pingThread.run();
}

Вот и все!

→ Ссылка