qwen_agent/task_queue/example.py
2025-10-18 09:20:59 +08:00

132 lines
3.3 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
Example usage of the queue system.
"""
import sys
import time
from pathlib import Path
# 添加项目根目录到Python路径
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))
from task_queue.manager import queue_manager
from task_queue.tasks import process_file_async, process_multiple_files_async
def example_single_file():
"""示例:处理单个文件"""
print("=== 示例:处理单个文件 ===")
project_id = "test_project"
file_path = "public/test_document.txt"
# 将文件加入队列
task_id = queue_manager.enqueue_file(
project_id=project_id,
file_path=file_path,
original_filename="example_document.txt"
)
print(f"任务已提交任务ID: {task_id}")
# 检查任务状态
time.sleep(2)
status = queue_manager.get_task_status(task_id)
print(f"任务状态: {status}")
def example_multiple_files():
"""示例:批量处理文件"""
print("\n=== 示例:批量处理文件 ===")
project_id = "test_project_batch"
file_paths = [
"public/test_document.txt",
"public/goods.xlsx" # 假设这个文件存在
]
original_filenames = [
"batch_document_1.txt",
"batch_goods.xlsx"
]
# 将多个文件加入队列
task_ids = queue_manager.enqueue_multiple_files(
project_id=project_id,
file_paths=file_paths,
original_filenames=original_filenames
)
print(f"批量任务已提交任务ID: {task_ids}")
def example_zip_file():
"""示例处理zip文件"""
print("\n=== 示例处理zip文件 ===")
project_id = "test_project_zip"
zip_path = "public/all_hp_product_spec_book2506.zip"
# 将zip文件加入队列
task_id = queue_manager.enqueue_zip_file(
project_id=project_id,
zip_path=zip_path
)
print(f"zip任务已提交任务ID: {task_id}")
def example_queue_stats():
"""示例:获取队列统计信息"""
print("\n=== 示例:队列统计信息 ===")
stats = queue_manager.get_queue_stats()
print(f"队列统计信息:")
for key, value in stats.items():
if key != "recent_tasks":
print(f" {key}: {value}")
def example_cleanup():
"""示例:清理任务"""
print("\n=== 示例:清理任务 ===")
project_id = "test_project"
# 将清理任务加入队列延迟10秒执行
task_id = queue_manager.enqueue_cleanup_task(
project_id=project_id,
older_than_days=1, # 清理1天前的文件
delay=10
)
print(f"清理任务已提交任务ID: {task_id}")
def main():
"""主函数"""
print("队列系统使用示例")
print("=" * 50)
try:
# 运行示例
example_single_file()
example_multiple_files()
example_zip_file()
example_queue_stats()
example_cleanup()
print("\n" + "=" * 50)
print("示例运行完成!")
print("\n要查看任务执行情况,请运行:")
print("python queue/consumer.py --check")
print("\n要启动队列消费者,请运行:")
print("python queue/consumer.py")
except Exception as e:
print(f"运行示例时发生错误: {str(e)}")
if __name__ == "__main__":
main()