
Dmitry
11.03.2017
19:34:10
какая-то хрень у них с сайтом стряслась :)
гугл предлагает идти на https версию, а там сетр от гитхаба
а http выглядит как говно
вроде у них был покрасивше год назад сайтец

Google

Greg
11.03.2017
20:31:19
Если ты видишь бутстраповский сайт - то все ок :)

Mikhail
11.03.2017
22:37:58

Dmitry
11.03.2017
22:38:59
обрабатывай их в горутинах
там апдейты складываются в канал, т.е. независимо как ты тупишь с их обработкой - они все равно продолжают приниматься без проблем, правда размер буфера не помню.
ну и отправка через встроеный клиент в 2 потока
если нагрузка большая, то надо своего клиента передавать bot, err := tgbotapi.NewBotAPIWithClient(botToken, client)

Mikhail
11.03.2017
22:44:40

Maxim
11.03.2017
22:45:25

Dmitry
11.03.2017
22:45:55
ну у меня они еще разделены на "только чтение" и "запись" обновления
и те что чтения сразу улетают в горутины, запись - по ситуации
и соответственно окончание обработки не bot.Send а тоже в канал, который разгребается уже нормальным клиентом
там еще где-то крутилка есть что увеличивает число коннектов со стороны телеги
100 максимум

Google

Maxim
11.03.2017
22:47:01
А зачем?

Dmitry
11.03.2017
22:47:16
// WebhookConfig contains information about a SetWebhook request.
type WebhookConfig struct {
URL *url.URL
Certificate interface{}
MaxConnections int
}
о

Maxim
11.03.2017
22:47:24
Я не совсем понимаю для чего так изгаляться. Получаешь апдейт и на его основе делаешь вообще всё остальное

Dmitry
11.03.2017
22:47:27
вон те махконнекшнс
там много нюансов

Maxim
11.03.2017
22:47:53
А уж какой апдейт, ручная стучалка каждую секунду или вебхуки - не суть важно. Канал апдейтов будет один

Mikhail
11.03.2017
22:47:56

Maxim
11.03.2017
22:48:10
Нет, проще свичом распилить приём типов обновлений и уже в кейсах слать данные в горутины.
// Updater
for upd := range updates {
switch {
case upd.Message != nil:
go GetMessage(upd.Message)
case upd.InlineQuery != nil && len(upd.InlineQuery.Query) <= 255: // Just don't update results if query exceeds the maximum length
go GetInlineResults(upd.InlineQuery)
case upd.ChosenInlineResult != nil:
go TrackChosenInlineResult(upd.ChosenInlineResult)
case upd.CallbackQuery != nil:
go CheckCallbackQuery(upd.CallbackQuery)
}
}
И уже в них прыгать и творить что душе угодно

Dmitry
11.03.2017
22:49:37
какие-то можно перемешивать, какие-то нет :)

Maxim
11.03.2017
22:50:13

Dmitry
11.03.2017
22:50:23
а где у тебя тут про "одного" юзера?
идет тебе три команды
add add done
ты их запустил в горутины, получил add done add
или done add add
правда это только под нормальной нагрузкой будет заметно :)

Maxim
11.03.2017
22:51:17

Google

Dmitry
11.03.2017
22:51:24
дык
плюс можно упереться во время отправки

Maxim
11.03.2017
22:51:45

Dmitry
11.03.2017
22:51:55
телега далеко не всегда отвечает быстро на твой sendMessage
бывает 999ый перцентиль до 7-10 секунд доходит

Maxim
11.03.2017
22:52:20

Dmitry
11.03.2017
22:52:24
бля
не я, а их сервер
POST
ответ на него может быть до 7 секунд , на 999

Maxim
11.03.2017
22:52:44
С их серверами никогда проблем не было. Всё мгновенно.

Dmitry
11.03.2017
22:52:51
нагрузки у тебя нет :)

Dmitry
11.03.2017
22:53:17
или мониторинга

Maxim
11.03.2017
22:53:19

Dmitry
11.03.2017
22:54:17
вот так выглядят периодические "работы" на телеге

Maxim
11.03.2017
22:54:33
С сообщениями вообще не суть важно. Но если бот очень молчаливый и только кушает сообщения, не отвечая в ответ на кучку сообщений, то телеграм тебе в апдейтах будет сообщать об этом

Dmitry
11.03.2017
22:54:36
ну я их так называю.. :)

Google

Dmitry
11.03.2017
22:54:56
просто на 2 часа все тупить начинает пару раз в неделю
с 800мс до 7-10 секунд 99 перцентиль и 150мс - 800 мс 75-ый

Maxim
11.03.2017
22:55:35

Dmitry
11.03.2017
22:55:43
это не падение

Maxim
11.03.2017
22:56:03
Не умею я пока нормально оперировать загрузкой файлов без проблем. ?
На прошлой неделе куча популярных ботов отвалилось, хрен знает почему.
А мой работал.

Admin
ERROR: S client not available

Denis
11.03.2017
23:00:57
AWS ?

Dmitry
11.03.2017
23:01:11
неделю назад не знаю, знаю почему отвалилось 21-ого февраля :)

Denis
11.03.2017
23:01:15
Или это было на позапрошлой

Maxim
11.03.2017
23:01:30
AWS ?
Не-а. Какой-то местный дешёвенький сервер

Dmitry
11.03.2017
23:01:50
в телеге добавили дополнительные валидации на switch_pm_parameter
и те инлайны что там слали фуфло всякое стали получать ошибку START_PARAM_INVALID

Maxim
11.03.2017
23:02:15

Dmitry
11.03.2017
23:02:21
багу?
хз

Google

Maxim
11.03.2017
23:02:38
Когда клик по свичу в канале заполняло поле ввода под кнопкой
Не дай бог ты фокус с него потеряешь - потом хрен уберёшь

Dmitry
11.03.2017
23:03:11
это вообще к телеге никакого отношения не имеет
это клиентские части же
кто как наговнокодил клиента так и мучается
я тебе про апи говорю сервеное :)
а ты мне клик по свичу

Maxim
11.03.2017
23:04:16
Я не выспался просто

Dmitry
11.03.2017
23:04:37
нуок, а я как раз пошел спать.
@mak_tu в общем норм либа и разработчик ее (Syfaro) хорошо идет на контакт, в телеге есть канал.
На нагрузках до 10-15 запросов в секунду даже не парься, выше придется чуть напильничком подпиливать

Yura
11.03.2017
23:10:34
Все уже видели? http://www.tapirgames.com/blog/golang-syntax-sugars-and-exceptions

Maxim
11.03.2017
23:12:48

Kirill
12.03.2017
14:29:52
@schors

Phil
12.03.2017
14:30:10

Kirill
12.03.2017
14:30:20

Constantine
12.03.2017
14:31:00
?
шустро