• Что использовать в качестве workerА для отложенных задач?

    fenrir1121
    @fenrir1121
    Начни с документации
    Для длительного хранения нужно использовать базу данных, а не redis или selery.
    Отдельный воркер вообще не обязателен, если нет вычислительных задач.

    Раз в миниту/час/день ходишь в базу и смотришь не наступило ли время выполнения, если наступило выполняешь.

    Можно добавить полезных оптимизаций: засыпать до ближайшего события или до инсерта новых записей, читать сразу батчами, держать ближайшие события в памяти и проверять только их, но в целом не обязательно.
    Ответ написан
    1 комментарий
  • Что использовать в качестве workerА для отложенных задач?

    Vindicar
    @Vindicar
    RTFM!
    Я бы вообще изобрёл велосипед, если честно.
    У тебя есть список или база активных (неслучившихся) событий. Пусть это будет пара ID-метка времени, остальная инфа нам без надобности.
    При запуске бота выбираем из списка ближайшее событие, и вычисляем время ожидания (с небольшим запасом) и спим в корутине. В случае, если ожидание прервано раньше - повторяем то же самое, чтобы либо "доспать", либо переключиться на ожидание более близкого события.
    Если же ожидание закончилось успешно, обрабатываем событие и снова повторяем поиск ближайшего события.
    Если список событий изменился, прерываем текущее ожидание, чтобы корутина ожидания могла адаптироваться к изменениям.

    Кода - строк на пятьдесят, не больше, и выносится в отдельный класс на ура. Как мне кажется, если бот не супер-нагружен (в том смысл, что список хранимых событий изменяется не каждую минуту, и событтия тоже срабатывают не так часто), то этого будет вполне достаточно.
    А когда он будет так нагружен - проще будет раз в минуту выбирать то, что должно сработать сейчас.
    Ответ написан
  • Что выбрать: sqlite или redis?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать вот эту фичу (Redis Queue)
    https://redis.io/glossary/redis-queue/

    Не должно быть "слишком долго". Как раз как хочет автор. :)
    Ответ написан
    Комментировать
  • Что выбрать: sqlite или redis?

    @Everything_is_bad
    1. Для более менее загруженного бота, который пишет в базу, sqlite может вызвать проблемы, тогда уж лучше postgresql или mysql
    2. Для нормальной работы aiogram, в любом случае нужен Redis.
    Ответ написан
  • Что выбрать: sqlite или redis?

    Вдруг будет слишком долго?
    Не будет. Забудьте вообще на данном этапе своего обучения про существование такого понятия как "скорость", пока не столкнётесь с тормозами в реальности.
    Хочется redis
    Его сложнее администрировать, чем sqlite. Но если хотите - развлекайтесь.
    Ответ написан
    1 комментарий
  • Как сделать, чтобы сайт "запоминал" поиски пользователя Django Js?

    @Everything_is_bad
    Задача элементарная, тут без разницы какой ЯП, фреймворк и прочее, есть два варианта, хранить это локально в браузере, либо хранить это на сервере.
    Ответ написан
    Комментировать
  • Как сделать поиск по странам и городам?

    victormayorov
    @victormayorov
    Frontend разработчик
    Ответ написан
    Комментировать