我如何安排脚本每天在python中每46分钟运行一次,从早上6:00到晚上23:40?

我如何安排脚本每天在python中每46分钟运行一次,从早上6:00到晚上23:40?,python,python-3.x,apscheduler,Python,Python 3.x,Apscheduler,我需要一个脚本,每天从早上6:00到晚上23:40,每46分钟运行一次。我目前正在使用apscheduler,但我无法按照间隔计划设置每天24次运行,并且使用cron模式对每次运行进行编程似乎效率很低。有没有一种简单的方法告诉python“从早上6点开始,每天24次,每46分钟运行一次代码?”假设您没有使用asyncio、gevent、tornado等 from apscheduler.schedulers.background import BackgroundScheduler sched

我需要一个脚本,每天从早上6:00到晚上23:40,每46分钟运行一次。我目前正在使用apscheduler,但我无法按照间隔计划设置每天24次运行,并且使用cron模式对每次运行进行编程似乎效率很低。有没有一种简单的方法告诉python“从早上6点开始,每天24次,每46分钟运行一次代码?”

假设您没有使用asyncio、gevent、tornado等

from apscheduler.schedulers.background import BackgroundScheduler

sched = BackgroundScheduler()
sched.start()
sched.add_job(function, 'cron', minute='46' hour='6-23')
有关更多详细信息,请参阅

编辑:

误读了这个问题。我假设你想要每46分钟一次,而不是在6到23之间每小时46分钟一次。最好是让apscheduler事件在23时停止间隔作业,并在6时再次恢复

from apscheduler.schedulers.background import BackgroundScheduler
sched = BackgroundScheduler()

def disable_interval():
    sched.remove_job('INTERVAL_JOB')

def enable_interval():
    sched.add_job(run_function, 'interval', minutes=46, id='INTERVAL_JOB')

if __name__ == '__main__':
    sched.start()
    sched.add_job(enable_interval, 'cron', minute='0' hour='6')
    sched.add_job(disable_interval, 'cron', minute='40' hour='23')

你想要的是一个cron作业,它将触发你的python程序是的,但是我如何向cron作业添加间隔呢?看来apscheduler是一个很好的方法。如果你发布你现有的计划代码,它没有做什么,以及你将如何处理任何停机时间,你可能会得到更好的帮助。更新我的代码,因为我第一次误读了你的问题。基本上,更新后的代码在6:00创建一个新作业,每46分钟运行一次。在23:40,它将删除作业。这应该可以正常工作,但我现在没有安装apscheduler,所以无法测试它。把代码弄乱一点,你应该得到你想要的。