Прежде чем я спрошу, Задачи Cron и планировщик заданий будут моими последними параметрами, этот script будет использоваться в Windows и Linux, и я бы предпочел использовать кодированный способ выполнения этого чем оставить это конечному пользователю.
Есть ли библиотека для Python, которую я могу использовать для планирования задач? Мне нужно будет запускать функцию один раз в час, однако со временем, если я запускаю script один раз в час и использую .sleep, "один раз в час" будет работать в другую часть часа с предыдущего дня из-за задержка, присущая выполнению/запуску script и/или функции.
Что такое лучший способ планирования функции в определенное время суток (более одного раза) без использования задания Cron или планирования его с помощью планировщика заданий?
Или, если это невозможно, я также хотел бы получить ваш вход.
AP Scheduler точно соответствует моим потребностям.
Версия < 3.0
import datetime
import time
from apscheduler.scheduler import Scheduler
# Start the scheduler
sched = Scheduler()
sched.daemonic = False
sched.start()
def job_function():
print("Hello World")
print(datetime.datetime.now())
time.sleep(20)
# Schedules job_function to be run once each minute
sched.add_cron_job(job_function, minute='0-59')
из
>Hello World
>2014-03-28 09:44:00.016.492
>Hello World
>2014-03-28 09:45:00.0.14110
Версия > 3.0
(Из ответа Анимеша Пандея ниже)
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
@sched.scheduled_job('interval', seconds=10)
def timed_job():
print('This job is run every 10 seconds.')
@sched.scheduled_job('cron', day_of_week='mon-fri', hour=10)
def scheduled_job():
print('This job is run every weekday at 10am.')
sched.configure(options_from_ini_file)
sched.start()