Spaces:
Running
Running
File size: 2,334 Bytes
9587328 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
import time
import random
import math
from itertools import cycle
def cpu_intensive_task():
"""随机选择一个CPU密集型任务执行"""
tasks = [
_calculate_primes,
_matrix_multiplication,
_fibonacci_calculation,
_pi_calculation
]
task = random.choice(tasks)
task()
def _calculate_primes():
"""计算质数"""
n = random.randint(100000, 1000000)
sieve = [True] * (n + 1)
sieve[0:2] = [False, False]
for i in range(2, int(math.sqrt(n)) + 1):
if sieve[i]:
sieve[i*i : n+1 : i] = [False] * len(sieve[i*i : n+1 : i])
def _matrix_multiplication():
"""矩阵乘法"""
size = random.randint(100, 300)
matrix = [[random.random() for _ in range(size)] for _ in range(size)]
result = [[0] * size for _ in range(size)]
for i in range(size):
for j in range(size):
for k in range(size):
result[i][j] += matrix[i][k] * matrix[k][j]
def _fibonacci_calculation():
"""斐波那契数列计算"""
n = random.randint(300000, 500000)
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
def _pi_calculation():
"""蒙特卡洛法计算π近似值"""
iterations = 10000000
count = 0
for _ in range(iterations):
x = random.random()
y = random.random()
if x*x + y*y <= 1:
count += 1
pi = 4 * count / iterations
def main():
try:
# 初始随机延迟 (5~15 分钟)
initial_delay = random.randint(5, 15)
time.sleep(initial_delay * 60)
# 创建间隔时间循环(10-300秒)
intervals = cycle([random.randint(10, 300) for _ in range(50)])
while True:
start_time = time.time()
print(f"开始CPU密集型任务 @ {time.strftime('%Y-%m-%d %H:%M:%S')}")
cpu_intensive_task()
elapsed = time.time() - start_time
print(f"任务完成,耗时: {elapsed:.2f}秒")
# 动态调整间隔时间
delay = next(intervals)
print(f"下次任务将在 {delay} 分钟后执行...")
time.sleep(delay * 60)
except KeyboardInterrupt:
print("\n任务调度已停止")
if __name__ == "__main__":
main()
|