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