Мой последний пост был неправильно помечен как повторяющийся. Я не пытаюсь выполнить asyncio.sleep, потому что он слишком неточный в течение нескольких недель. Мне нужна библиотека расписания.
Я нашел похожую ветку: Как я могу запустить асинхронную функцию с помощью библиотеки расписания? Это не помогло мне или OP потока. Я закончил с той же ошибкой, что и он, о чем он заявил в комментарии к единственному ответу.
Моя цель - запускать функцию (которая должна быть асинхронной) каждые x секунд. (Установите секунды для целей тестирования. В готовом коде будут использоваться дни.)
Мой упрощенный код, чтобы попробовать сделать это:
@bot.event
async def schedTest():
print("Scheduled Message Here")
@bot.command(pass_context=True)
async def announcements(ctx):
schedule.every(1).seconds.do(
bot.loop.call_soon_threadsafe, schedTest)
После выполнения команды announcements
результата этого ничего. На выходе нет ошибок или распечаток.
Это не та же проблема, что и поток, который был помечен как повторяющийся. Я пытаюсь заставить работать библиотеку расписания, а не asyncio.sleep. Сон не точен в течение недели.
Если это невозможно, может ли кто-нибудь посоветовать способ выполнения запланированной функции с точностью до нескольких минут в течение нескольких недель? Поскольку это то, чего я в значительной степени пытаюсь достичь.
@peterNoges К сожалению, нет. Все, что я помню, это то, что асинхронная библиотека и библиотека расписания на самом деле несовместимы. Альтернативный метод - использовать ссылки на дату и время. Я не помню ее названия, но я думаю, что есть библиотека для даты / времени, которая хорошо работает для discord.py и тому подобного. Удачи в начинаниях, дружище!
При удаче? Я гоняюсь за чем-то похожим