modify: 调整项目结构,更新调度器

This commit is contained in:
2025-09-16 17:29:23 +08:00
parent 69c6a8d72f
commit ae876fea89
19 changed files with 278 additions and 147 deletions
+9 -4
View File
@@ -10,22 +10,27 @@ class TestCore:
def test_task_mounter(cls):
task_mounter = core.TaskMounter(TaskMounter)
task_mounter.get_task_list()
print(task_mounter.get_task_function("task")({"num": 1})(lambda x: x+1).meta["num"])
print(
task_mounter.get_task_function("task")({"num": 1})(lambda x: x + 1).meta[
"num"
]
)
from tasks import example
task_mounter.get_task_list()
print(task_mounter.get_task_function("<lambda>"))
@classmethod
def test_queue_operation_init_db(cls):
cls.queue_operation.init_db()
@classmethod
def test_queue_operation_enqueue(cls):
message_item = MessageItem(content={"num": 1}, destination="test")
message_item = MessageItem(content={"num": 1}, destination="test") # type: ignore
cls.queue_operation.enqueue(message_item.to_dict_by_core())
@classmethod
def test_queue_operation_dequeue(cls):
message_item = MessageItem(content={"num": 1}, destination="test")
cls.queue_operation.enqueue(message_item.to_dict_by_core())
print(cls.queue_operation.dequeue(1))
print(cls.queue_operation.dequeue(1))
+2 -2
View File
@@ -6,7 +6,7 @@ import time
class TestListen:
def test_listen_data(self):
scheduler = QueueScheduler()
scheduler.start_queue_scheduler()
scheduler.start()
scheduler.update_listen_data("key_1", "value_1")
time.sleep(0.001)
scheduler.update_listen_data("key_1", "value_2")
@@ -15,6 +15,6 @@ class TestListen:
time.sleep(0.001)
scheduler.update_listen_data("key_1", "value_4")
time.sleep(0.001)
scheduler.stop_queue_scheduler()
scheduler.stop()
print(scheduler.get_listen_datas())
print(scheduler.get_listen_data("key_1"))
+17 -13
View File
@@ -49,12 +49,14 @@ class TestStress:
for i in range(TASK_NUM): # 增加任务数量
message_item = MessageItem(content={"num": i}, destination="example")
messages.append(message_item)
cls.is_monitoring = True
monitor_thread = threading.Thread(target=cls.monitor_resources, daemon=True)
monitor_thread.start()
queue_scheduler = QueueScheduler(receive_thread_num=4, task_thread_num=8, shard_num=12)
queue_scheduler = QueueScheduler(
receive_thread_num=4, task_thread_num=8, shard_num=12
)
# threads = []
# for message_item in messages:
# t = threading.Thread(target=queue_scheduler.send_message, args=(message_item, cls.test_callback))
@@ -62,26 +64,29 @@ class TestStress:
# 添加性能计时
start_time = time.perf_counter()
queue_scheduler.start_queue_scheduler()
queue_scheduler.start()
for message_item in messages: # 增加任务数量
message_item: MessageItem
queue_scheduler.send_message(message_item, cls._callback)
# # 多线程发送任务
# for t in threads:
# t.start()
# # 动态等待任务完成
start_wait = time.time()
while (queue_scheduler.queue_operation.get_queue_length() > 0 or cls.callback_counter < TASK_NUM): # 30秒超时
while (
queue_scheduler.queue_operation.get_queue_length() > 0
or cls.callback_counter < TASK_NUM
): # 30秒超时
time.sleep(0.5)
print(f"当前队列长度:{queue_scheduler.queue_operation.get_queue_length()}")
print(f"当前回调数量:{cls.callback_counter}")
queue_scheduler.stop_queue_scheduler()
queue_scheduler.stop()
print(f"当前队列长度:{queue_scheduler.queue_operation.get_queue_length()}")
print(f"测试函数:斐波那契数列")
print(f"次数:{TASK_NUM}")
@@ -89,4 +94,3 @@ class TestStress:
cls.is_monitoring = False
monitor_thread.join(timeout=1)