Задать вопрос
  • Как организовать планировщик заданий?

    @Maxwell012 Автор вопроса
    Saboteur, каждая дата это отдельная строка, просто проверяя каждую секунду например 1м записей это ужасная затрата ресурсов, раз в 5м тоже такое себе, нужно тогда учитывать что дата уже могла на 5м быть пройдена. Я думал может есть чет на подобие вебхуков, то есть когда остался час до даты отправлялся запрос мне в основной скрипт который обрабатывал его и все, то есть чтобы нужная дата сама отправлялась. Тоесть мой скрипт просто ожидает например запрос который прийдет от бд и тогда его исполняет, хотя возможно это так и устроенно что есть просто скрипт в постгрескл который постоянно проверяет дату, но я бы хотел какой-то триггер чтоли. Надеюсь я понятно высказался
  • Как организовать планировщик заданий?

    @Maxwell012 Автор вопроса
    Maxwell012, Если это поможет, то я думаю сохранят в планировщик только одну переменную что является индентификатором на определнную строку в бд и когда ее время исполнение доходит то уже через айди достоется нужная информация с бд и отправляется оповещение клиенту. Я имею виду что я не буду хранить много информации для запуска одной задачи, поэтому миллион задач в планировщике даже если в оперативе это не так уж много, но мне нужно рассчитывать на то что вес задач может привышать обьем оперативной памяти поэтому лучше сохранять их на диск плюс это защитит меня от перезагрузки сервера и т.д.
  • Как организовать планировщик заданий?

    @Maxwell012 Автор вопроса
    извиняюсь за неточную информацию, было тяжело сформулировать. У меня есть бот на python + aiogram, пользователи регистрируюца на определнное событие дата которого может быть хоть через 3 месяца (может и больше, но пока что я взял эту орентировачную длину), так вот мне нужно чтобы когда до назначиной даты оставался день отправить сообщение предупреждающее + когда останиться 3 часа еще одно оповещение. Я просто не сильно вижу смысл помещать в планировщик задачи которые могут быть использованы через 3 месяца. Количество запросов я не могу точно сказать, но я орентируюсь на то что запланнированных задач может быть миллион. Я не совсем понимаю где планировщики хранят задачи, они хранят в оперативной памяти или сохраняют их на диск, просто если они сохраняются на диск то впринципе планировщики идеально подходят потому что мне не нужны задачи в оперативе которые исполняться только через 3 месяца
  • Как создать пул соединений asyncpg?

    @Maxwell012 Автор вопроса
    ваш код не проверял но думаю он рабочий, я уже разобрался с этим вопросом и у меня похожий код как у вас). Мне только не нравиться то что для создания бд нужно как минимум один еще метод вызывать чтобы создать пул, но это не проблема просто моя привередливость
  • Как получить текст сообщения по id?

    @Maxwell012 Автор вопроса
    tur_3d, почему не правильно?
  • Как получить текст сообщения по id?

    @Maxwell012 Автор вопроса
    получается отправленное сообщение я уже не могу снова посмотреть только если я его не запомнил
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    Сергей Горностаев, вы имете виду если у человека несколько интервалов времени в дне то делать под каждый интервал строку. Еще тогда вопрос, забронированное время лучше вынести в отдельную таблицу где будут все брони?
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    Петр, как тогда понимать какой участок времени был забронирован?
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    Maxwell012, возможно нужно создать отдельную таблицу в которой я буду хранить брони, но это уже начинает казаться мне не рациональным
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    Slava Rozhnev, я не заметил что вы исправили ответ, выглядит круто, но проблема в том что я не могу добавить четкое время, это может быть например 10 - 12, 16 - 18, для этих отрезков я создаю 2 строчки но что делать если заняли пол часа только у первого времени, возможно вы подумали что тогда можно создавать много отрывков по пол часа, но проблема в том что я не знаю сколько времени будет выделенно мастером для какой-то задачи/работы, поэтому это перестает работать для меня
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    Сергей Горностаев, Я пытаюсь сделать правильно, но возникли пару вопросов, хотел бы пропросить немного сконтолировать процесс. Я создал таблицу:
    CREATE TABLE specialist_availability (
        id BIGINT,
        date DATE,
        time tsrange[]
    );

    я использовал tsrange[] для того чтобы можно было добавлять отрывки вермени или вычеркивать время тем самым создавая пробелы, но проблема в том что gist не предусмотрен для tsrange[], если смысл создавать свой операторный класс для того чтобы создать gist?
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    Сергей Горностаев, ну тут смотря с чем сравнивать, но вы правы), это не так уж и много
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    Сергей Горностаев, много строк я имел виду, так как мне нужно хранить пол года хотя бы наперед для специалиста чтобы люди могли записываться, а то есть 150 дней например, ну а это уже 150 строк
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    alexalexes, на счет архивации слотов которые истекли я не подумал, я их действительно могу перенести в просто список так как с этими данными редко работают. А на счет индексов не сильно понял, мне нужно каждый рабочий день человека добавлять
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    читал про этот тип данных, не сильно он мне понравился, но как я вижу прийдется мне им воспользоваться. Но все равно получиться почти такая же ситуация как 1 ответ выше, получиться сильно много столбцов + в идеале вынести дату в идеальную колонку чтобы быстрее происходил поиск так как tsrange конвертируется в строку как я понимаю а назат в дату конвертировать и потом проверять какой это день это будет долго. Проблема в том что мне надо постоянно обращаться в бд и доставать свободные часы человека, но если хранить в таблицы все дни всех людей то это получиться бесконечная таблица
  • Как разместить календарь в Postgresql?

    @Maxwell012 Автор вопроса
    вы предлагаете хранить каждый день отдельно, но это только для одного участника например на год будет 365 полей, а людей например возьмем 1000, это уже 365к полей
  • Как использовать asyncpg с aiogram?

    @Maxwell012 Автор вопроса
    Сергей Соловьев, я там ничего не нашел полезного, но сейчас прикреплю