我想在python中安排一个cron作业,每天上午10点运行python脚本。我正在使用apscheduler来实现这个功能。
我正在尝试使用apscheduler功能来安排一个cron作业,该作业每天上午10点运行并执行一个python脚本。但是作业没有在定义的时间执行。
我已经使用apscheduler安排了一个间隔作业,让它每隔10分钟执行一次python脚本,并且运行成功,但是cron作业是我的难点所在。
计划于今天下午2点运行的cron作业的示例代码-
from apscheduler.schedulers.blocking import BlockingScheduler
def cron_process():
print ("periodic print")
scheduler = BlockingScheduler()
scheduler.add_job(process, 'cron', day_of_week = 'sun', hour=14)
scheduler.start()
间隔作业的示例代码在启动执行时每10分钟成功运行一次-
def interval_process():
print ("print every 10 minutes")
scheduler = BlockingScheduler()
scheduler.add_job(process, 'interval', minutes=10)
scheduler.start()
预期的结果是,cron作业将在定义的时间在与间隔作业相同的行上执行。
请告知我在哪里犯了错,或者我在代码中还遗漏了什么。
谢谢。
发布于 2020-10-09 04:21:58
logger的官方示例:有关更多信息,您可以查看official document。当前版本:APScheduler==3.6.3
安装/要求:
pip install APScheduler
示例:
from apscheduler.schedulers.blocking import BlockingScheduler
import logging
import sys
logger = logging.getLogger('')
logger.setLevel(logging.DEBUG)
sh = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter('[%(asctime)s] %(levelname)s [%(filename)s.%(funcName)s:%(lineno)d] %(message)s', datefmt='%a, %d %b %Y %H:%M:%S')
sh.setFormatter(formatter)
logger.addHandler(sh)
def job_function():
print("Hello World")
sched = BlockingScheduler()
# Schedules job_function to be run on the third Friday
# of June, July, August, November and December at 00:00, 01:00, 02:00 and 03:00
sched.add_job(job_function, 'cron', month='6-8,11-12', day='3rd fri', hour='0-3')
sched.start()
输出:
[Thu, 08 Oct 2020 22:09:41] INFO [base.py.add_job:440] Adding job tentatively -- it will be properly scheduled when the scheduler starts
[Thu, 08 Oct 2020 22:09:41] INFO [base.py._real_add_job:881] Added job "job_function" to job store "default"
[Thu, 08 Oct 2020 22:09:41] INFO [base.py.start:166] Scheduler started
[Thu, 08 Oct 2020 22:09:41] DEBUG [base.py._process_jobs:940] Looking for jobs to run
[Thu, 08 Oct 2020 22:09:41] DEBUG [base.py._process_jobs:1019] Next wakeup is due at 2020-11-20 00:00:00+01:00 (in 3639018.401552 seconds)
https://stackoverflow.com/questions/54737637
复制相似问题