@botoid

Страница 3999 из 4042
first
20.10.2018
09:02:54
сколько потоков?
def send_message(chat_id, text): def _send_message(chat_id, text): while users[chat_id] != 0: time.sleep(1) else: users[chat_id] = 1 msg = bot.send_message(chat_id, text, parse_mode='HTML') print(msg.chat.id, msg.date) return msg t = threading.Thread(target=_send_message, args=(chat_id, text)) t.daemon = True t.start()

first
20.10.2018
09:03:32
Google
Noname
20.10.2018
09:03:47
А память, да, гавно
Читай выше с памятю пофиксили давно

Pavel
20.10.2018
09:04:15
Не понял...
она в цикле вызывается или как?

зачем тебе вообще потоки? если это ptb, то там есть @run_async

Noname
20.10.2018
09:04:48
какая либа?
Ну вот есть конпки панели а есть кнопка в сообщении под фото например я читал что это инлайн методы но организировать их не смог

Pavel
20.10.2018
09:05:33
def send_message(chat_id, text): def _send_message(chat_id, text): while users[chat_id] != 0: time.sleep(1) else: users[chat_id] = 1 msg = bot.send_message(chat_id, text, parse_mode='HTML') print(msg.chat.id, msg.date) return msg t = threading.Thread(target=_send_message, args=(chat_id, text)) t.daemon = True t.start()
пока что выглядит все так, что ты в цикле вызываешь эту функцию и она для каждого айдишника создает свой поток, которые все почти одновременно стартуют. отсюда и превышение лимитов

first
20.10.2018
09:06:09
она в цикле вызывается или как?
Да, в цикле. Цикл парсит сайт, заносит данные в словарь и потом просто проверят, изменились ли спарсенные данные, если да, отправляет сообщение об изменении

Что в функции сообщение не отправляется, пока не прошла одна секунда после прошлого

Noname
20.10.2018
09:06:51
Indie Dev
20.10.2018
09:08:09
Щас гляну сек
ЛИБА: https://github.com/rubenlagus/TelegramBots Вот уроки https://monsterdeveloper.gitbooks.io/writing-telegram-bots-on-java/chapter1.html #java

Oleg
20.10.2018
09:10:34
Ты не понимаешь, под сообщениями может быть редактирование мессаджа, отправка другой клавы, да и вообще вычислительные работы... Так что чем быстрее тем лучше.
Я все понимаю, но мне как пользователю не хочется видеть 3 клавиатуры в секунду. Спасибо, что ввели лимиты и защитили от горе разработчиков

Google
first
20.10.2018
09:13:31
версия без потоков работает?
Я потоки сделал, из-за ограничения 1 сообщение в 1 сек юзеру

Pavel
20.10.2018
09:15:23
Я потоки сделал, из-за ограничения 1 сообщение в 1 сек юзеру
а как ты хотел при помощи потоков обойти это ограничение? ?

Oleg
20.10.2018
09:39:06
Математика 3 класс. 4 потока отправляют по 1 сообщению в секунду. Сколько сообщений в секунду получает сервер?

Indie Dev
20.10.2018
09:44:07


first
20.10.2018
09:47:41
Вот уродский тг

users = {254999383: [0, 0], 86903856: [0, 0]} def send_message(chat_id, text): def _send_message(chat_id, text, msg_id): while users[chat_id][0] != msg_id: time.sleep(2) else: msg = bot.send_message(chat_id, text, parse_mode='HTML') print(msg.chat.id, msg.date, users[chat_id]) time.sleep(1) users[chat_id][0] += 1 return msg msg_id = users[chat_id][1] users[chat_id][1] += 1 t = threading.Thread(target=_send_message, args=(chat_id, text, msg_id)) t.daemon = True t.start()

сделал так

Dmitri
20.10.2018
09:48:05
сколько кнопок будет в одной строке

Oleg
20.10.2018
09:48:14
Вот уродский тг
Нормальный тг, не надо тут.

first
20.10.2018
09:48:37
Нормальный тг, не надо тут.
https://hastebin.com/toliyatate.apache

Смотри лог

Indie Dev
20.10.2018
09:49:05
сколько кнопок будет в одной строке
у меня разные количества в разных строках, да и я отправляю массив с кнопками, там же все есть.

Oleg
20.10.2018
09:49:05
Всё правильно, я выше написал причину

Павел
20.10.2018
09:49:13
Смотри лог
и что не так

Dmitri
20.10.2018
09:49:28
у меня разные количества в разных строках, да и я отправляю массив с кнопками, там же все есть.
оно работает только в случае, если ты наполняешь клавиатуру через add. В принципе - не имеет смысла

first
20.10.2018
09:49:31
и что не так
Ошибка [b'{"ok":false,"error_code":429,"description":"Too Many Requests: retry after 207","parameters":{"retry_after":207}}']

Oleg
20.10.2018
09:49:44
и что не так
Он бесится, что не может отправить пользователю 500 сообщений

Google
Oleg
20.10.2018
09:49:51
?‍♂

Павел
20.10.2018
09:49:53
бгг

first
20.10.2018
09:49:57
Мне себе надо

200 сообщений надо отослать всего

бгг
Он отправляет раз в 3 сек мне сообщение

Oleg
20.10.2018
09:50:24
Мне себе надо
С задержкой делай или объединяя

Павел
20.10.2018
09:51:56
а ты подождал {"retry_after":207} или сразу хуярил?

first
20.10.2018
09:52:09
Потом все равно заново эту выдал

64 сообщения смог отправить

Павел
20.10.2018
09:52:45
и как ты ту функцию вызываешь?

first
20.10.2018
09:53:06
Павел
20.10.2018
09:53:14
сколько раз\

first
20.10.2018
09:53:20
200

Павел
20.10.2018
09:53:26
подряд чтоли?

Dmitri
20.10.2018
09:53:30
-_-______------____-_-

Google
first
20.10.2018
09:54:06
подряд чтоли?
Ты посмотри, он же не разом сообщения отправляет, они попадают в очередь. Задержка между сообщениям 3 сек

А так да, подряд

Павел
20.10.2018
09:54:26
ты видишь что там поток плодится каждый раз?

Oleg
20.10.2018
09:54:32
Один спит 3 секунды, да... А остальные отправляют

first
20.10.2018
09:55:00
Oleg
20.10.2018
09:55:08
ВНИМАТЕЛЬНО КОД ПОСМОТРИ
Ты посмотри сам его.

first
20.10.2018
09:55:22
users = {254999383: [0, 0], 86903856: [0, 0]}

Видишь?

Oleg
20.10.2018
09:55:31
И что это за помойка?

first
20.10.2018
09:56:02
И что это за помойка?
Теперь посмотри на код и подумай

Что же это такое

Oleg
20.10.2018
09:56:31
Тебе сказали в чём проблема. Если не понимаешь — иди в питон бегиннерс

first
20.10.2018
09:57:12
Oleg
20.10.2018
09:58:09
Ничего, всё ок. Это телеграм плохой.

first
20.10.2018
09:58:33
Ничего, всё ок. Это телеграм плохой.
Ты код посмотри, они по очереди отправляются, а не разом

Google
Oleg
20.10.2018
09:59:05
Ты код посмотри, они по очереди отправляются, а не разом
Ты в доках про треды почитай. Потом приходи.

Pavel
20.10.2018
09:59:31
https://hastebin.com/toliyatate.apache
а есть лог с временем?

first
20.10.2018
10:00:03
а есть лог с временем?
2ой столбик timestamp

Dmitri
20.10.2018
10:00:36
это не тот ли парень, который в цитатник попал с "когда деньги будут всем скину кто помогал"? :D

Павел
20.10.2018
10:00:44
чет нихуя не задержка

first
20.10.2018
10:00:55
чет нихуя не задержка
users = {254999383: [0, 0], 86903856: [0, 0]} def send_message(chat_id, text): def _send_message(chat_id, text, msg_id): while users[chat_id][0] != msg_id: time.sleep(2) else: msg = bot.send_message(chat_id, text, parse_mode='HTML') print(msg.chat.id, msg.date, users[chat_id]) time.sleep(1) users[chat_id][0] += 1 return msg msg_id = users[chat_id][1] users[chat_id][1] += 1 t = threading.Thread(target=_send_message, args=(chat_id, text, msg_id)) t.daemon = True t.start()

Внимательно смотри

Dmitri
20.10.2018
10:01:40
first
20.10.2018
10:01:42
Ты реально думаешь, что это с телефона удобно читать?
так если ты не читал, то не говори мне ничего про потоки

Oleg
20.10.2018
10:02:05
first
20.10.2018
10:02:37
Oleg
20.10.2018
10:03:01

Страница 3999 из 4042