Python - 什么是基于Time运行方法/功能的最佳方式。 (24小时)

时间:2017-09-11 11:14:08

标签: python time

我一直在考虑在我想要的时间运行脚本/代码。就像我们说的那样。我想在00:00运行一个程序(我在那个时候想要开始的代码中输入它)同时它是23:21。所以它应该等到那个时候然后运行方法/函数或它应该做的任何事情。

在这种情况下,在这种情况下运行类似的东西的最佳方式是什么:)?

编辑:例证 -

  

我想通过代码来做这件事。喜欢等我有一个代码   我们说3个功能。在23:50时我想要函数nr 1   跑。然后在23:55我希望功能nr 2运行然后00:05 i   想要运行nr3函数以及同一个py文件中的所有函数。

4 个答案:

答案 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脚本来运行每一分钟。 存储方法名称和在数据库中运行的时间。当任务运行时,它会查看是否有任何要执行的任务,并执行数据库中指定的方法。