Как с помощью библиотеки apscheduler реализовать вызов функции с заданной периодичностью и началом отчета кратному периодичности?
Как в python с помощью библиотеки apscheduler настроить вызов функции foo с периодичностью 2 минуты и началом отчета кратному периодичности? Ниже приведен рабочий код, для приведенного примера отсчет идет каждые 2 минуты с момента запуска. То есть если на момент запуска время было 18:37:00, то следующий запуск будет 18:39:00, 18:41:00 и т.д., а требуется чтобы было 18:38:00, 18:40:00, 18:42:00 и т.д.
import schedule
from datetime import datetime
import asyncio
from apscheduler.schedulers.asyncio import AsyncIOScheduler
async def foo():
print(f'{datetime.now()} Foo')
async def main():
scheduler = AsyncIOScheduler()
scheduler.add_job(foo, "interval", seconds=10,
start_date='2022-05-14 17:25:00')
scheduler.start()
if __name__ == "__main__":
loop = asyncio.new_event_loop()
loop.create_task(main())
loop.run_forever()
Ответы (1 шт):
Автор решения: Yuriy Tigiev
→ Ссылка
Достаточно в start_date указать любую дату из прошлого, а время = 00:00:00. В этом случае запуск функции будет начинаться во время кратному заданному интервалу.
import schedule
from datetime import datetime
import asyncio
from apscheduler.schedulers.asyncio import AsyncIOScheduler
async def foo():
print(f'{datetime.now()} Foo')
async def main():
scheduler = AsyncIOScheduler()
scheduler.add_job(foo, "interval", seconds=10,
start_date='2000-01-01 00:00:00')
scheduler.start()
if __name__ == "__main__":
loop = asyncio.new_event_loop()
loop.create_task(main())
loop.run_forever()