【问题标题】:Verifying that an APScheduler task has properly executed验证 APScheduler 任务是否已正确执行
【发布时间】:2016-03-20 10:56:15
【问题描述】:

我正在尝试使用 APScheduler 库在两个特定时间执行作业:太平洋标准时间凌晨 1 点和太平洋标准时间凌晨 2 点。

有点失落,我想弄清楚做错了什么。到目前为止,这是我的代码:

#!/usr/bin/python

import sys
import re
import urllib
import csv
import urllib2
import logging

import datetime

from apscheduler.schedulers.blocking import BlockingScheduler


sched = BlockingScheduler()
logging.basicConfig()

def main():    
  #Make a rest call, store the output in a csv, close the file.
  ...
  f.close()

sched.add_job(my_job, 'date', run_date = '2015-12-15 01:00:00', args=['text'])

try:
    sched.start()
    print(datetime.datetime.now())

except (KeyboardInterrupt):
    logger.debug('Terminating...')
    print (datetime.datetime.now())

当前时间是太平洋标准时间 12:16,我刚刚运行了上面的脚本,它在下午 12:30:30 的作业时间之前执行并创建了文件;这是出于测试目的。

所以,我想弄清楚我在使用 APScheduler 方面做错了什么。

我想改进这段代码,有什么可以改变的?

【问题讨论】:

    标签: python python-2.7 datetime scheduled-tasks apscheduler


    【解决方案1】:

    如果您想每次都在特定时间运行您的代码,您应该使用 cron 触发器:

    sched.add_job(my_job, 'cron', hour='1,2', args=['text'])
    

    为了更好的调试:

    logging.basicConfig(level=logging.DEBUG)
    

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 2015-03-17
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2011-04-25
      相关资源
      最近更新 更多