我一直在考虑在我想要的时间运行脚本/代码。就像我们说的那样。我想在00:00运行一个程序(我在那个时候想要开始的代码中输入它)同时它是23:21。所以它应该等到那个时候然后运行方法/函数或它应该做的任何事情。
在这种情况下,在这种情况下运行类似的东西的最佳方式是什么:)?
编辑:例证 -
我想通过代码来做这件事。喜欢等我有一个代码 我们说3个功能。在23:50时我想要函数nr 1 跑。然后在23:55我希望功能nr 2运行然后00:05 i 想要运行nr3函数以及同一个py文件中的所有函数。
答案 0 :(得分:2)
您可以使用 crontab 。
编辑:
crontab -e
添加初始时间:
50 23 * * * /usr/bin/python /your/file.py function1
55 23 * * * /usr/bin/python /your/file.py function2
05 00 * * * /usr/bin/python /your/file.py function3
这应该是你的文件。
import sys
def function1():
print "function 1 running"
def function2():
print "function 2 running"
def function3():
print "function 3 running"
if sys.argv[1]:
run = sys.argv[1]
if run == "function1":
function1()
elif run == "function2":
function2()
elif run == "function3":
function3()
答案 1 :(得分:1)
sched库是您正在寻找的。不需要站点包或其他实用程序,如cron。
答案 2 :(得分:1)
您可以这样做:
import time
starttimes = { (23, 50): func1, (23, 55): func2, (0, 5): func3 }
while True:
now = tuple(time.gmtime()[3:5])
if now in starttimes:
starttimes[now]() # call a function
time.sleep(60)
请注意,这是一个非常粗略的解决方案,特别假设func1
... func3
函数的运行时间都不会比剩下的时间长到下一个函数的开始时间。另外:您需要启动程序并让它一直运行。你杀了它(或重启你的系统),你需要重新启动它。
答案 3 :(得分:0)
您正在寻找专用的任务调度程序,如Celer y。
或者简单地说,你可以放一个crontab来运行python脚本来运行每一分钟。 存储方法名称和在数据库中运行的时间。当任务运行时,它会查看是否有任何要执行的任务,并执行数据库中指定的方法。