【问题标题】:Python Schedule module works only the first timePython Schedule 模块仅在第一次工作
【发布时间】:2018-12-27 00:41:55
【问题描述】:

我目前在一家金融公司担任量化实习生。我正在尝试做的是让系统在每天16:30 将今天的股市数据更新为.csv。

我在网上搜索并找到了Schedule模块,看起来很简单,所以我实现了它。第一天(周一)做的不错,更新了,今天查到服务器昨天(周二)的日期没有更新,报错。

我的代码是这样写的:

def job():
    stockss = list(all_instruments(type='CS').order_book_id.values)
    for stock in stockss:
    d = datetime.datetime.today().strftime('%Y-%m-%d')
    a = rq.get_price(stock,str(d),str(d))
    df = pd.DataFrame(a)
    with open(str(stock)+'.csv','a') as f:
        df.to_csv(f, header = False)

schedule.every().monday.at("16:30").do(job)
schedule.every().tuesday.at("16:30").do(job)
schedule.every().wednesday.at("16:30").do(job)
schedule.every().thursday.at("16:30").do(job)
schedule.every().friday.at("16:30").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

谢谢!

【问题讨论】:

  • 复制粘贴您的代码而不是图像。
  • 刚刚这样做了,谢谢您的建议,我是新来的..请问您对如何解决这个问题有什么建议吗?
  • 您的代码看起来不错,尤其是在周一成功运行的情况下。周三检查时,您的脚本还在运行吗?错误信息是什么?

标签: python scheduled-tasks scheduler finance


【解决方案1】:

你可以使用另一个更强大的模块apscheduler,这里是一个例子:

# ... your import
from apscheduler.schedulers.blocking import BlockingScheduler


def job():
    stockss = list(all_instruments(type='CS').order_book_id.values)
    for stock in stockss:
    d = datetime.datetime.today().strftime('%Y-%m-%d')
    a = rq.get_price(stock,str(d),str(d))
    df = pd.DataFrame(a)
    with open(str(stock)+'.csv','a') as f:
        df.to_csv(f, header = False)


if __name__ == '__main__':
    scheduler = BlockingScheduler()
    scheduler.add_job(job, 'cron', day_of_week="mon-fri", hour="16", minute="30")  # run on Monday to Friday at 16:30
    print('Press Ctrl+C to exit')

    try:
        scheduler.start()
    except (KeyboardInterrupt, SystemExit):
        pass

这里是相关文档:

https://apscheduler.readthedocs.io/en/latest/modules/triggers/cron.html#module-apscheduler.triggers.cron

https://apscheduler.readthedocs.io/en/latest/index.html

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    相关资源
    最近更新 更多