Spaces:
Sleeping
Sleeping
| import threading | |
| import asyncio | |
| from core.database import SessionLocal | |
| from scheduler.queue import ( | |
| execution_queue | |
| ) | |
| from services.execution_service import ( | |
| ExecutionService | |
| ) | |
| def worker(): | |
| print("Worker started") | |
| while True: | |
| workflow_id = execution_queue.get() | |
| print( | |
| f"Executing workflow {workflow_id}" | |
| ) | |
| db = SessionLocal() | |
| try: | |
| service = ExecutionService() | |
| asyncio.run( | |
| service.run_scheduled_workflow( | |
| workflow_id, | |
| db | |
| ) | |
| ) | |
| except Exception as e: | |
| print( | |
| f"Worker error: {e}" | |
| ) | |
| finally: | |
| db.close() | |
| execution_queue.task_done() | |
| def start_worker(): | |
| thread = threading.Thread( | |
| target=worker, | |
| daemon=True | |
| ) | |
| thread.start() |