Вообще-то многие API предполагают, что отправка в заданное время ложится непосредственно на систему отправителя. Поэтому такой функции может не быть и это нормально.
Что такое "канал в Viber"? В их публичной документации только Viber Bot может посылать сообщения пользователям. И приведённый пример array вообще непонятно о чём, с документацией не бьётся.
В IDE можно запускать при разработке, но реальное приложение придётся запускать непосредственно интерпретатором (неважно где - в докере или нет, в Windows или Linux, локально или удалённо). Поэтому да, надо понимать, как его запускать.
Ну и кто-то из местных кураторов тэга Python писал тут, что IDE хорошо использовать, когда уже понимаешь язык. Потому что IDE много рутинных задач решает за человека. Правильно ставит отступы, подставляет названия классов и объектов, к функциям приписывает скобки и подсказывает аргументы. Для обучения же полезно писать с помощью обычного текстового редактора, набить руку, пройтись по всем возможным граблям, решить все возникшие проблемы. Тем более что в практических задачах обязательно иногда придётся редактировать код в произвольном текстовом редакторе.
Никита, не должно ничего специально заниматься в памяти, если это специально не делать.
Двойные клики на кнопку надо уметь обрабатывать. Например, отмечать нажатие в state, чтобы второе нажатие не срабатывало. Или ловить исключение, на котором бот упал.
Про особенности aiogram я мало знаю, так как три с половиной небольших ботов я когда-то написал с помощью телебота.
В общем-то, не видя кода, сложно что-то конкретное советовать. Может, там какая-нить очевидная жырная проблема, которую мы тут даже не подумали...
Просто строишь туннель от каждого офиса на тот внешний и в нём пусть будет роутинг между ними. Если у того офиса плохо с каналом и его нельзя так забивать - арендуем сервак/vps у любого хостера и строим звезду через него.
То, что выбор последнего элемента в таком генераторе происходит с вероятностью 1 ещё не значит, что генератор неслучайный. Ведь элементы вплоть до последнего выбираются с вероятностью не больше 1/2.
Скорее всего бот сам выделяет память и не освобождает её. Причём подобного вполне себе легко достичь Ну, например, если все входящие сообщения сохранять в память, то очевидно расход памяти будет расти. Если бот популярный и пишут ему очень много, то логично, что история будет постепенно пухнуть.
Или например если бот втягивает в память содержимое всех присылаемых файлов, то память у него тоже быстро закончится. Особенно если присылают видео.
Или ошибка вообще где-то в неботовой логике.
В общем, профилировать, если нет каких-то очевидных мест утечки.
WSGlebKavash, это как раз не самая проблема, в DVB давно и успешно умеют кодировать каналы. Там другая проблема: придётся брать обязательства на обеспечение сервиса. Мобильным операторам это совершенно не нужно.
Какая реальная задача стоит? Сейчас вопрос выглядит как полная несуразица. S3 это не прокси, а сервис хранения файлов, а Cloudfront это не прокси, а CDN. Соответственно, S3 не будет вообще ни в какой "back domain" обращаться, а Cloudfront будет кэшировать данные и далеко не каждый запрос прокинет, он для того и предназначен, чтобы быстро отдавать контент, не заставляя пользователя ожидать скачивания с оригинального сайта где-то далеко.
Весь этот геморрой не просто так, а в целях борьбы со спамом. И это лишь отчасти предлог (на A2P SMS операторы неплохо так зарабатывают), потому что на практике это реально помогает от засилья SMS-спама. Когда за спам надо выплатить приличную сумму денег, пройти проверку на вшивость (доказательства владения товарным знаком итд) и оправдываться за жалобы от получателей перед оператором, то он становится намного менее выгоден.
Есть более цивилизованные каналы маркетинга. Сайты, группы в соцсетях, каналы в телеграммах, PUSH-сообщения в фирменном мобильном приложении итд итп... Где пользователь более явно выражает своё согласие на получение информации и не менее легко и быстро может его отозвать.
Denis93, эта штуковина - тупая обёртка над библиотекой tdjson. Там кода почти нет. Я заглянул внутрь и очевидно же что там надо создать экземпляр класса и звать от него send/receive/execute. В send или execute передаётся array который внутри сериализуется в json и передаётся в tdjson. Дальше надо смотреть, что делает tdjson и что в него надо передавать. Вроде бы вот это официальный пример: https://github.com/tdlib/td/blob/master/example/py...
PrilForReal, под словом "база данных" иногда подразумевают саму базу с данными, а иногда софт, на которым она крутится (та самая "СУБД"). Да, иногда это может вызывать неопределённость, но крайне редко.
PrilForReal, это крайне стрёмный способ бэкапа, так как для использования бэкапа потребуется база данных такой же версии с таким же конфигом и ещё не факт что нормально взлетит.
Что такое "канал в Viber"? В их публичной документации только Viber Bot может посылать сообщения пользователям. И приведённый пример array вообще непонятно о чём, с документацией не бьётся.