python随机时间运行_根据python中的一段时间生成脚本运行的“随机”启动时间

我尝试生成一些随机种子时间来告诉我的脚本何时从主脚本中启动每个脚本。在

我想设定一个时间范围:START_TIME = "02:00"

END_TIME = "03:00"

当到达启动时间时,它需要查看我们必须运行多少脚本:

^{pr2}$

在本例中有3个要运行,因此需要生成3个随机时间来启动这些脚本,每个脚本之间间隔5分钟,但时间必须在START_TIME和{}中设置的时间内

但是,它还需要知道script1.main总是第一个启动的脚本,其他脚本可以被随机移动(随机)

所以我们可能会让script1在01:43运行,然后{}在01:55运行,然后{}可能在02:59运行

我们也可以让script1在01:35运行,然后{}在01:45运行,然后{}可能在01:45运行,这也很好。在

到目前为止,我的脚本可以在下面找到:import random

import pytz

from time import sleep

from datetime import datetime

import script1

import script2

import script3

START_TIME = "01:21"

END_TIME = "03:00"

while 1:

try:

# Set current time & dates for GMT, London

CURRENT_GMTTIME = datetime.now(pytz.timezone('Europe/London')).strftime("%H%M")

CURRENT_GMTDAY = datetime.now(pytz.timezone('Europe/London')).strftime("%d%m%Y")

sleep(5)

# Grab old day for comparisons

try:

with open("DATECHECK.txt", 'rb') as DATECHECK:

OLD_DAY = DATECHECK.read()

except IOError:

with open("DATECHECK.txt", 'wb') as DATECHECK:

DATECHECK.write("0")

OLD_DAY = 0

# Check for new day, if it's a new day do more

if int(CURRENT_GMTDAY) != int(OLD_DAY):

print "New Day"

# Check that we are in the correct period of time to start running

if int(CURRENT_GMTTIME) <= int(START_TIME.replace(":", "")) and int(CURRENT_GMTTIME) >= int(END_TIME.replace(":", "")):

print "Correct time, starting"

# Unsure how to seed the start times for the scripts below

script1.do_proc()

script2.alter()

script3.noneex()

# Unsure how to seed the start times for above

# Save the current day to prevent it from running again today.

with open("DATECHECK.txt", 'wb') as DATECHECK:

DATECHECK.write(CURRENT_GMTDAY)

print "Completed"

else:

pass

else:

pass

except Exception:

print "Error..."

sleep(60)

编辑日期:2016年3月31日

假设我添加以下内容SCRIPTS = ["script1.test()", "script2.test()", "script3.test()"]

MAIN_SCRIPT = "script1.test()"

TIME_DIFFERENCE = datetime.strptime(END_TIME, "%H:%M") - datetime.strptime(START_TIME, "%H:%M")

TIME_DIFFERENCE = TIME_DIFFERENCE.seconds我们现在有了要运行的脚本数量

我们有要运行的脚本列表。在

我们有主脚本的名称,第一个运行的脚本。在

我们有以秒为单位的时间来显示我们总共有多少时间来运行其中的所有脚本。在

当然,有一种方法我们可以插入某种循环,让它全部完成。。在for i in range(len(SCRIPTS)),是3倍

生成3个种子,确保最短时间为300,并且这3个种子加起来不能超过TIME_DIFFERENCE

根据RUN_TIME = START_TIME创建开始时间,然后RUN_TIME = RUN_TIME + SEED[i]

第一个循环将检查MAIN_SCRIPT是否存在于SCRIPTS中,如果存在,那么它将首先运行该脚本,从SCRIPTS中删除自己,然后在下一个循环中,因为它不存在于SCRIPTS中,它将切换到随机调用其他脚本之一。在

播种时代

下面的方法似乎有效,但可能有一种更简单的方法来实现这一点。在CALCULATE_SEEDS = 0

NEW_SEED = 0

SEEDS_SUCESSS = False

SEEDS = []

while SEEDS_SUCESSS == False:

# Generate a new seed number

NEW_SEED = random.randrange(0, TIME_DIFFERENCE)

# Make sure the seed is above the minimum number

if NEW_SEED > 300:

SEEDS.append(NEW_SEED)

# Make sure we have the same amount of seeds as scripts before continuing.

if len(SEEDS) == len(SCRIPTS):

# Calculate all of the seeds together

for SEED in SEEDS:

CALCULATE_SEEDS += SEED

# Make sure the calculated seeds added together is smaller than the total time difference

if CALCULATE_SEEDS >= TIME_DIFFERENCE:

# Reset and try again if it's not below the number

SEEDS = []

else:

# Exit while loop if we have a correct amount of seeds with minimum times.

SEEDS_SUCESSS = True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值