如何创建一个每X分钟随机休息一次的循环,其中X也是一个随机的持续时间?
我还希望能够指定两次随机持续时间的上限和下限。
答案 0 :(得分:1)
你可以尝试这个:
<td>
答案 1 :(得分:0)
import ftplib
import hashlib
import httplib
import pytz
import datetime
localtime = datetime.datetime.now(pytz.timezone('Asia/Singapore')).isoformat()
cam = "hi5"
lscam = localtime + cam
ftp = ftplib.FTP('localhost','username','password')
ftp.cwd('Server')
m=hashlib.md5()
file = open('Desktop/frame00000.png','rb')
m.update(lscam)
dd=m.hexdigest()
ftp.storbinary('STOR '+dd, file)
file.close()
ftp.quit()
显然可以适应一个功能,但这很有效
答案 2 :(得分:0)
你可以试试这个:
import datetime
import time
import random
sleep_duration = 60
previous_sleep = datetime.datetime.now()
random_offset = random.randint(-5, 5)
while(True):
delta = (datetime.datetime.now() - previous_sleep).total_seconds()
if delta < 60 * (20 + random_offset):
# Do stuff
time.sleep(1)
continue
else:
previous_sleep = datetime.datetime.now()
random_offset = random.randint(-5, 5)
time.sleep(sleep_duration)
该程序每15-25分钟睡眠60秒,具体取决于计算的随机偏移量。
答案 3 :(得分:0)
这是一个使用datetime.now()
和timedelta
来计算下一个间隔的示例代码,这有点优于使用time.time
或类似的,因为这会在午夜失败,因为在这种情况下,日期也很重要:
import time
import random
import datetime
sleep_duration = 1 #seconds
min_sleep_interval = max_sleep_interval = 3 #in seconds
_TIME_TO_SLEEP = datetime.datetime.now()
def maybe_sleep():
#using a singleton class you could avoind using globals
global _TIME_TO_SLEEP
if datetime.datetime.now()>= _TIME_TO_SLEEP:
time.sleep(sleep_duration)
seconds_to_wait = random.randint(min_sleep_interval, max_sleep_interval)
next_delay = datetime.timedelta(seconds= seconds_to_wait)
_TIME_TO_SLEEP = datetime.datetime.now() + next_delay
然后在每次迭代时调用maybe_sleep()
并根据自己的喜好调整常量(可能使它们不那么恒定;)
作为演示:
for i in range(10000):
maybe_sleep()
print(i)