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()