
Sergey
09.08.2018
20:34:11
достаточно документацию открыть

Карабанов
09.08.2018
20:39:14
есть биткоин? =(
"Чем меньше коинов, тем больше коинов"?

Kirill
09.08.2018
20:40:40
Xrp есть

Google

Kirill
09.08.2018
20:40:46
По 50 центов

Dmitri
09.08.2018
22:33:24
Может кто прошарить, насколько адекватно ворекры гуникорна работают со скриптом тг бота?

Vitaly
09.08.2018
23:24:50
Смотря какая либа
Я окончательно разочаровался в aiogram! Перехожу на Telegraf и вам всем советую!

Denis
10.08.2018
04:31:53

Dika
10.08.2018
04:34:07

Bogdan
10.08.2018
04:42:09
Коммьюнити ?

Oleg
10.08.2018
04:44:53

[Anonymous]
10.08.2018
05:07:25

Vitaly
10.08.2018
05:31:15

Sergey
10.08.2018
05:34:26
отступы
а чем отступы не понравились ?

Vitaly
10.08.2018
05:35:05
Питоном
!tv

Google

[Anonymous]
10.08.2018
05:35:28
Отступы сексапильные

Sergey
10.08.2018
05:36:16
ну 4 пробела по пепу

Vitaly
10.08.2018
05:36:38
Свинку?

Sergey
10.08.2018
05:37:20

Vitaly
10.08.2018
05:38:21

Suren
10.08.2018
05:38:40
Да он ещё не проснулся

Sergey
10.08.2018
05:39:03
вдруг не знает человек
он же не питонист

Gabb
10.08.2018
05:41:25

Timur
10.08.2018
06:18:43
добрый день. поставил бота на вебхуке на хероку, билдится, запускается, ошибок никаких не выдаёт (на запросы вебхука ответ 200), но сам бот не реагирует никак, в getwebhookinfo ошибок нет, что может быть? библиотека телеграф, код тут - https://pastebin.com/JwaNB17U

Vitaly
10.08.2018
07:21:35
>на запросы вебхука ответ 200
а в пайлоаде что?

Timur
10.08.2018
07:25:19
>на запросы вебхука ответ 200
а в пайлоаде что?
что текое пейлоад, тело запроса или ответа? в консоли вижу 2018-08-10T07:18:32.611417+00:00 heroku[router]: at=info method=POST path="/bot" host=host request_id=281c2a98-066f-4f6f-8fc8-da917e8dad5d fwd="149.154.167.208" dyno=web.1 connect=0ms service=15ms status=200 bytes=94 protocol=https

Vitaly
10.08.2018
07:26:18
ну 200 значит норм
может ошибка в сценах?

Timur
10.08.2018
07:27:39

Vitaly
10.08.2018
07:29:49
redis или еще чего

Timur
10.08.2018
07:30:30
я в сцене уже получаю данные юзера и ставлю, если сессия сбросилась

μόναρχος
10.08.2018
07:32:41
Попробовал спарсить рипл из 61 Ка доступно 2 Ка и 1295 спарсино

Google

Sergey
10.08.2018
07:33:14

μόναρχος
10.08.2018
07:33:30
Да просто вчера говорили
:)

Sergey
10.08.2018
07:34:08

Timur
10.08.2018
07:36:36

Borya
10.08.2018
07:39:43
???????????????

Timur
10.08.2018
07:39:57
https://github.com/telegraf/telegraf/blob/develop/docs/examples/webhook-bot.js в этом примере написано, что всё-таки сначала сетвебхук (хотя разницы не должно быть, если это не первый запуск, теоретически)

Dmitri
10.08.2018
07:43:37
все та же проблема ?
угу
я уже не знаю.. ограничить бы как-то входящие запросы от одного юзера на уровне нгинкса.. потому что в коде ничего не работает. Нужно это рубить до гуникорна

Vitaly
10.08.2018
07:45:05

Sergey
10.08.2018
07:45:05

Dmitri
10.08.2018
07:47:53
синхронно воркеры запускал?
так они по дефолту синхронные, но все равно ебануто обрабатывают)
Видел бы ты чего я туда уже в код только не накидал..
думал уже в аппе для гуникорна рубить запросы по тайму, как троттл (его я кстати по факту сделал уже, но он не работает для воркеров этих -_- точнее, работает, но не совсем), но понял что после гуникорна уже делать что-то - бесполезно, он все равно обрабатывает как ему хочется

Timur
10.08.2018
07:50:33

Sergey
10.08.2018
08:05:39

Dmitri
10.08.2018
08:06:19
на уровне базы тогда надо делать может
суть в чем -_-
типа, поставил движок на таблицы myisam, вроде как лочит всю таблицу, когда идет запись, даже на выборку. В итоге запросы просто в очереди :D

Sergey
10.08.2018
08:06:39

Dmitri
10.08.2018
08:06:58
ну это плохо
ну типа, не то что бы в очереди, задержки нет, просто они по очереди выполняются спокойно)))
я уже думал найти какую-то хрень, которая будет убивать любой коннект к базе, если в течении хотя бы последних секунд 5-10 было редактирование аналогичной строки (это к InnoDB относится)
Хз, вешать на каждую строку время апдейта, и делать тригер на апдейт, или есть че адекватнее)

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
10.08.2018
08:10:11

Google

Sergey
10.08.2018
08:10:15
я с таким не сталкивался если честно
и как правильно загуглить тоже не знаю
может что то типа коллизии при выборке данных из бд

Йоба
10.08.2018
08:13:40

Sergey
10.08.2018
08:14:04


Dmitri
10.08.2018
08:14:41
А в чем проблема?
Ботец работает на нгинкс+гуникорн
Бот игровой, есть кнпоки по начислению бонусов, сбору ресурсов, и т.д.
В общем, если запускать гуни с 1 ворекром - все адекватно, благодаря реализации а-ля троттл(только в телеботе), таймаунты на действия
Но как только я запускаю, для нормальной работы скрипта (при одном воркере задержка ответа от бота от 10 до 25 сек), начинается бред, потому что пользователи начинают тыкать те же кнопки сбора ресурсов просто бесконечно, из-за чего тот же сбор - задваивается, 2+ раза обрабатывается то, что не должно обработаться больше раза. Конкретной причины понять не могу, единственное предположение - несколько воркеров ловят идентичные запросы, и выполяют их.
При этом вот эта реализация а-ля троттл тоже не помогает - эти параллельные воркеры с same-запросами проходят проверку одновременно, по сути, и все равно выполняются оба -_-
Как-то так. Мог где-то хреново описать, надеюсь в общем будет понятно


F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
10.08.2018
08:15:15
Понял

Dmitri
10.08.2018
08:15:23

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
10.08.2018
08:15:28
RabbitMQ тебе поможет

Dmitri
10.08.2018
08:15:34
спасибо, погуглю

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
10.08.2018
08:15:52
Поднимаешь 1 воркер на обработку запросов и ставишь не больше 1 запроса в очереди
Либо другой варинат
Фильтровать на уровне веб сервера через редис
Фактически нужно использовать какой-то программный сервер, текст запроса разбирать и совать в редис, а уже редис разбирать воркером

Dmitri
10.08.2018
08:17:15

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
10.08.2018
08:17:46


Йоба
10.08.2018
08:18:09
Ботец работает на нгинкс+гуникорн
Бот игровой, есть кнпоки по начислению бонусов, сбору ресурсов, и т.д.
В общем, если запускать гуни с 1 ворекром - все адекватно, благодаря реализации а-ля троттл(только в телеботе), таймаунты на действия
Но как только я запускаю, для нормальной работы скрипта (при одном воркере задержка ответа от бота от 10 до 25 сек), начинается бред, потому что пользователи начинают тыкать те же кнопки сбора ресурсов просто бесконечно, из-за чего тот же сбор - задваивается, 2+ раза обрабатывается то, что не должно обработаться больше раза. Конкретной причины понять не могу, единственное предположение - несколько воркеров ловят идентичные запросы, и выполяют их.
При этом вот эта реализация а-ля троттл тоже не помогает - эти параллельные воркеры с same-запросами проходят проверку одновременно, по сути, и все равно выполняются оба -_-
после нажатия на кнопку делай клаву неактивной для юзера, пока не обработается в базе, т.е. алго такой
1) получаем нажатие на кнопку
2) посылаем телеге неактивную клаву сразу же, такие нагрузки должны обрабатываться быстро, если ты перед этим никуда не лезешь в логику
3) запихиваешь в воркер( тут еще можно, чтобы воркер проверял блокировку клавы у юзера где-нить в словаре, это бесплатно по ресурсам)
4) по окончанию воркер разблокирует клаву


Dmitri
10.08.2018
08:18:12

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
10.08.2018
08:18:27

Dmitri
10.08.2018
08:18:43

Google

Dmitri
10.08.2018
08:19:20
после нажатия на кнопку делай клаву неактивной для юзера, пока не обработается в базе, т.е. алго такой
1) получаем нажатие на кнопку
2) посылаем телеге неактивную клаву сразу же, такие нагрузки должны обрабатываться быстро, если ты перед этим никуда не лезешь в логику
3) запихиваешь в воркер( тут еще можно, чтобы воркер проверял блокировку клавы у юзера где-нить в словаре, это бесплатно по ресурсам)
4) по окончанию воркер разблокирует клаву
работает это странно, потому что эти нажатия забивают, походу, сам канал телеграм, который мне отдает их апдейты
Я пока тыкаю кнопку - вообще ничего не выполняется
как только немного остановлюсь - прилетает куча апдейтов)

Йоба
10.08.2018
08:19:57