每小时都有4个cronjobs。 第一个脚本在启动cronjob时开始。 第二个人睡了15秒。 第三个人睡了30秒。 第四个人睡了45秒。
这是我每15秒就有一份工作的方式。
它有效,但如果有人有更好的方法,请告诉我。
我真正的挑战是我开始每个脚本都保存一个时间戳,我将其用于其他目的和数据库中的其他值。 它显示每个cronjob各种各样的+/-几秒钟。
是否可以将时间戳四舍五入到最近的整分钟,再加上15秒,再加上30秒再加上45秒:
timestamp = strftime("%H:%M:%S")
因此,如果我的cronjobs在12:00:01或11:59:58开始,则所有4个脚本都会有时间戳:
12:00:00
12:00:15
12:00:30
12:00:45
我希望它有道理并且有可能吗?
答案 0 :(得分:0)
您可以尝试将时间分成几小时和几秒,然后将它们四舍五入到最接近的分钟和小时。
def split_hour(timer):
hour=timer[,2]
return hour
def split_min(timer):
min=timer[3,6]
return min
def split_sec(timer,min):
sec=timer[6,]
if sec>=30:
sec=0
min=min+1
return min
else:
sec=0
你可以做这样的事情我可能会弄错符号,但是你可以拆分秒并将其向上或向下绕上然后将其添加到分钟。
答案 1 :(得分:0)
此功能将四舍五入到最接近的分钟,即如果时间戳中的秒数小于30,则前一整分钟,如果下一整分钟为30或更多。
import datetime
def round_seconds(timestamp):
ts_sec = timestamp.timetuple()[5]
timestamp_rounded = timestamp.replace(second=0, microsecond=0)
if ts_sec < 30:
return timestamp_rounded
else:
return timestamp_rounded + datetime.timedelta(minutes=1)
现在你可以得到这样的时间戳:
timestamp = round_seconds(datetime.datetime.now())