Как с помощью библиотеки 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()
→ Ссылка