定时执行某个函数只能通过while循环控制吗?

我想定时执行python脚本里的一个函数,目前只想到通过while循环来获取时间

import datetime
while datetime.datetime.utcnow() == sometime:
    do something

这个python文件是不是要一直运行,而且只能通过while循环来控制时间吗?

阅读 8.9k
2 个回答

还可以通过time.sleep实现。需要一直运行着,你可以设置它为后台进程。如果还需要运行程序中其他代码,可以考虑多线程

这是一个朋友给我的建议http://weibo.com/2703005970/z8NUpaPdA

据我所知,定时执行有多种方式,分别可以在不同的层面上实现。

  1. 可以在python代码层面上实现。这个需要程序一起在运行。

    python提交了任务调试机制,scheduler,可以按照推迟的时间来调度。
    当然,time.sleep也可以实现,但个人感觉并不优雅。
    
  2. 还可以在操作系统层面上实现。Linux提供crond的机制,简单可靠,设置灵活。

如果还有其他层面的实现,欢迎补充。

推荐问题
logo
101 新手上路
子站问答
访问
宣传栏