как отправлять сообщения через бота в ровно определенное время?

Не могу осуществить отправку сообщений через каждые три часа. Пробовал с schedule, но увы происходит краш:

TypeError: the first argument must be callable

Понимаю, что сие процесс можно осуществить при помощи цикла While, но как это сделать, чтобы весь бот не лег?

Буду рад любому ответу в решении данного вопроса. В долгу не останусь.

UPD: Прошу прощения, что не приложил код сразу:

# Проверка времени рассылки #
async def check_time(m: types.Message):
    check_time = cursor.execute(f'SELECT * FROM send WHERE group_id = {m.chat.id}').fetchone()

    if check_time is None:
        cursor.execute(f'INSERT INTO send VALUES (?, ?, ?)', (m.chat.id, 10800, m.date)) # 10800 - это время через которое должно быть отправлено время, в секундах
        conn.commit()

    if check_time is not None:
        check_time = check_time[1]

    return check_time


# Рассылка
async def send(m: types.Message):
    time_ = await check_time(m) # time_ - указывает через какое время будет отправлено сообщение (параметр может изменяться)

    await bot.send_message(chat_id= m.chat.id, text='text"') # именно это сообщение должно отправляться через промежуток времени time_


# ну, а это какие-то горе попытки (пытался сделать подобным этому - https://ru.stackoverflow.com/questions/1232276/)
def schedule_checker():
    while True:
        schedule.run_pending()
        sleep(60)


if __name__ == '__main__':
    schedule.every(1).minutes.do(send) # тут ругается на то, что аргумента нэма.. send_() missing 1 required positional argument: 'm'
    Thread(target=schedule_checker).start()
    executor.start_polling(dp, skip_updates=True)

По возможности всё расписал. Параметр time_ нигде не затрагивается, но хочется, чтобы именно от него зависела отправка сообщений по времени.

P.S: Код немножко изменил, но все же это не помогло решению проблемы..


Ответы (0 шт):