Convert all Chinese comments, docstrings, logger/print output, HTTPException detail messages, and API response messages to English across the entire codebase. Functional zh/ja localized strings (e.g. prompt templates, timezone display names, date formats) are preserved as-is. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
133 lines
3.3 KiB
Python
Executable File
133 lines
3.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Example usage of the queue system.
|
|
"""
|
|
|
|
import sys
|
|
import time
|
|
from pathlib import Path
|
|
|
|
# Add project root directory to Python path
|
|
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():
|
|
"""Example: Process a single file."""
|
|
print("=== Example: Process a single file ===")
|
|
|
|
project_id = "test_project"
|
|
file_path = "public/test_document.txt"
|
|
|
|
# Enqueue file for processing
|
|
task_id = queue_manager.enqueue_file(
|
|
project_id=project_id,
|
|
file_path=file_path,
|
|
original_filename="example_document.txt"
|
|
)
|
|
|
|
print(f"Task submitted, task ID: {task_id}")
|
|
|
|
# Check task status
|
|
time.sleep(2)
|
|
status = queue_manager.get_task_status(task_id)
|
|
print(f"Task status: {status}")
|
|
|
|
|
|
def example_multiple_files():
|
|
"""Example: Batch process files."""
|
|
print("\n=== Example: Batch process files ===")
|
|
|
|
project_id = "test_project_batch"
|
|
file_paths = [
|
|
"public/test_document.txt",
|
|
"public/goods.xlsx" # Assuming this file exists
|
|
]
|
|
original_filenames = [
|
|
"batch_document_1.txt",
|
|
"batch_goods.xlsx"
|
|
]
|
|
|
|
# Enqueue multiple files for processing
|
|
task_ids = queue_manager.enqueue_multiple_files(
|
|
project_id=project_id,
|
|
file_paths=file_paths,
|
|
original_filenames=original_filenames
|
|
)
|
|
|
|
print(f"Batch tasks submitted, task IDs: {task_ids}")
|
|
|
|
|
|
def example_zip_file():
|
|
"""Example: Process a zip file."""
|
|
print("\n=== Example: Process a zip file ===")
|
|
|
|
project_id = "test_project_zip"
|
|
zip_path = "public/all_hp_product_spec_book2506.zip"
|
|
|
|
# Enqueue zip file for processing
|
|
task_id = queue_manager.enqueue_zip_file(
|
|
project_id=project_id,
|
|
zip_path=zip_path
|
|
)
|
|
|
|
print(f"Zip task submitted, task ID: {task_id}")
|
|
|
|
|
|
def example_queue_stats():
|
|
"""Example: Get queue statistics."""
|
|
print("\n=== Example: Queue statistics ===")
|
|
|
|
stats = queue_manager.get_queue_stats()
|
|
print("Queue statistics:")
|
|
for key, value in stats.items():
|
|
if key != "recent_tasks":
|
|
print(f" {key}: {value}")
|
|
|
|
|
|
def example_cleanup():
|
|
"""Example: Cleanup tasks."""
|
|
print("\n=== Example: Cleanup tasks ===")
|
|
|
|
project_id = "test_project"
|
|
|
|
# Enqueue cleanup task (delayed 10 seconds)
|
|
task_id = queue_manager.enqueue_cleanup_task(
|
|
project_id=project_id,
|
|
older_than_days=1, # Clean files older than 1 day
|
|
delay=10
|
|
)
|
|
|
|
print(f"Cleanup task submitted, task ID: {task_id}")
|
|
|
|
|
|
def main():
|
|
"""Main entry point."""
|
|
print("Queue System Usage Examples")
|
|
print("=" * 50)
|
|
|
|
try:
|
|
# Run examples
|
|
example_single_file()
|
|
example_multiple_files()
|
|
example_zip_file()
|
|
example_queue_stats()
|
|
example_cleanup()
|
|
|
|
print("\n" + "=" * 50)
|
|
print("Examples completed!")
|
|
print("\nTo check task execution, run:")
|
|
print("python queue/consumer.py --check")
|
|
print("\nTo start the queue consumer, run:")
|
|
print("python queue/consumer.py")
|
|
|
|
except Exception as e:
|
|
print(f"Error running examples: {str(e)}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|