简体   繁体   English

python apscheduler 不是每 1 分钟由 cron 执行一次

[英]python apscheduler not execute by cron for every 1 minute

I am using apscheduler to make a cron job, now I want to make the work execute every 1 minute.我正在使用 apscheduler 进行 cron 作业,现在我想让工作每 1 分钟执行一次。 This is my code:这是我的代码:

# -*- coding: utf-8 -*-
import time

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.interval import IntervalTrigger


if __name__ == '__main__':
    scheduler = BackgroundScheduler()
    scheduler.start()
    try:
        while True:
            time.sleep(2)
    except (KeyboardInterrupt, SystemExit):
        scheduler.shutdown()


@scheduler.scheduled_job(IntervalTrigger(seconds=60))
def func_to_be_executed():
    print("I am running......")

But the job only execute once, what should I to to make it execute every minute using cron way?但是作业只执行一次,我应该如何使用 cron 方式让它每分钟执行一次?

Try using the decorator approach.尝试使用装饰器方法。 It should work.它应该工作。

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.interval import IntervalTrigger

scheduler = BackgroundScheduler()
scheduler.start()

@scheduler.scheduled_job(IntervalTrigger(seconds=60))
def func_to_be_executed():
  pass

Code for BlockingSchedular - use when the scheduler is the only thing running in your process BlockingSchedular 的代码 - 当调度程序是你的进程中唯一运行的东西时使用

from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.interval import IntervalTrigger

sched = BlockingScheduler()

@sched.scheduled_job(IntervalTrigger(seconds=10))
def timed_job():
    print('This job is run every 10 seconds.')

sched.start()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM