@zheka007

Почему сообщения пользователям от бота телеграмм приходят с задержкой?

Создан бот телеграмм, подключены пользователи. Скажем только избранные (70 человек), бот в группы не входит. Сервер обрабатывает определенные php скрипты по крону, и при наступлении нужного события (на которое подписан пользователь) пользователю отправляется оповещение.

Но проблема... не все сообщения приходят в нужное время, появляется задержка в 4 минуты. Было даже и 8 минут и 12.. в логи только не попало еще...

[29.09.17 20:04:38] | [chat_id]
[29.09.17 20:04:37] | [chat_id]
[29.09.17 20:04:36] | [chat_id]
[29.09.17 20:04:35] | [chat_id]
[29.09.17 20:04:34] | [chat_id]
[29.09.17 20:04:33] | [chat_id]
[29.09.17 20:04:32] | [chat_id]
[29.09.17 20:04:31] | [chat_id]
[29.09.17 20:04:30] | [chat_id]
[29.09.17 20:04:29] | [chat_id]
[29.09.17 20:04:28] | [chat_id]
[29.09.17 20:04:27] | [chat_id]
[29.09.17 20:04:26] | [chat_id]
[29.09.17 20:04:25] | [chat_id]
[29.09.17 20:04:24] | [chat_id]
[29.09.17 20:04:23] | [chat_id]
[29.09.17 20:04:22] | [chat_id]
[29.09.17 20:04:21] | [chat_id]
[29.09.17 20:04:20] | [chat_id]
[29.09.17 20:04:19] | [chat_id]
[29.09.17 20:04:17] | [chat_id]
[29.09.17 20:04:16] | [chat_id]
--- тут почему-то задержка в 4 минуты ---
[29.09.17 20:00:15] | [chat_id]
[29.09.17 20:00:14] | [chat_id]
[29.09.17 20:00:13] | [chat_id]
[29.09.17 20:00:12] | [chat_id]
[29.09.17 20:00:11] | [chat_id]
[29.09.17 20:00:10] | [chat_id]
[29.09.17 20:00:09] | [chat_id]
[29.09.17 20:00:08] | [chat_id]
[29.09.17 20:00:07] | [chat_id]
[29.09.17 20:00:06] | [chat_id]
[29.09.17 20:00:05] | [chat_id]
[29.09.17 20:00:04] | [chat_id]
[29.09.17 20:00:03] | [chat_id]

Вот еще пример:

[29.09.17 18:34:56] | [chat_id]
[29.09.17 18:34:54] | [chat_id]
[29.09.17 18:34:53] | [chat_id]
[29.09.17 18:34:52] | [chat_id]
[29.09.17 18:34:50] | [chat_id]
[29.09.17 18:34:49] | [chat_id]
[29.09.17 18:34:47] | [chat_id]
--- тут почему-то задержка в 4 минуты ---
[29.09.17 18:30:46] | [chat_id]
[29.09.17 18:30:44] | [chat_id]
[29.09.17 18:30:43] | [chat_id]
[29.09.17 18:30:41] | [chat_id]
[29.09.17 18:30:40] | [chat_id]
[29.09.17 18:30:39] | [chat_id]
[29.09.17 18:30:37] | [chat_id]
[29.09.17 18:30:36] | [chat_id]
[29.09.17 18:30:34] | [chat_id]
[29.09.17 18:30:32] | [chat_id]
[29.09.17 18:30:31] | [chat_id]
[29.09.17 18:30:30] | [chat_id]
[29.09.17 18:30:28] | [chat_id]
[29.09.17 18:30:27] | [chat_id]
[29.09.17 18:30:25] | [chat_id]
[29.09.17 18:30:24] | [chat_id]
[29.09.17 18:30:22] | [chat_id]
[29.09.17 18:30:21] | [chat_id]
[29.09.17 18:30:19] | [chat_id]
[29.09.17 18:30:17] | [chat_id]
[29.09.17 18:30:16] | [chat_id]
[29.09.17 18:30:15] | [chat_id]
[29.09.17 18:30:13] | [chat_id]
[29.09.17 18:30:12] | [chat_id]
[29.09.17 18:30:10] | [chat_id]
[29.09.17 18:30:09] | [chat_id]
[29.09.17 18:30:07] | [chat_id]
[29.09.17 18:30:06] | [chat_id]
[29.09.17 18:30:04] | [chat_id]
[29.09.17 18:30:03] | [chat_id]

Когда происходит какое-то событие, например if ($a == $b)
вызывается функция
sendMessage_telegram($telegram_chat_id, $message);

Сама функция лежит в файле connect.php (подключение к бд) с токенами бота:
function sendMessage_telegram($telegram_chat_id, $message) {
		usleep(1100000);
		file_get_contents($GLOBALS['api_telegram'] . '/sendMessage?chat_id=' . $telegram_chat_id . '&text=' . urlencode($message));
		$data_sendMessage = date ("d.m.y H:i:s");
		mysql_query(" INSERT INTO `telegram_sendMessage`(`data`,`chat_id`,`text`) VALUES ('$data_sendMessage','$telegram_chat_id','$message') ");
	}


Я поставил задержку перед отправкой в 1,1 сек. (подумал этого то должно хватить) так как в API ТГ написано, что нельзя отправлять больше 30 сообщений в секунду, но все равно мимо...
После отправки поставил запись логов, когда пользователи начали жаловаться, что оповещения приходит не вовремя.

В чем может быть косяк? Настройка сервера? Бота? php?
Это блокировка от ТГ или что-то другое?
  • Вопрос задан
  • 2963 просмотра
Решения вопроса 1
Думаю у вас при оббработке по крону следующий крон запускает скрипт когда он ещё не закончил обработку предыдущего крона, потом ещё раз, из-за этого возникают тормоза и задержки
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@nllm
Надо весь код бота смотреть, иначе будет трудно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы