import asyncio
from praisonai.mcp_server.tasks import TaskManager, TaskStatus
async def execute_operation(method: str, params: dict) -> str:
"""Your async operation handler."""
await asyncio.sleep(1) # Simulate work
return f"Result for {method}"
async def main():
# Create task manager with executor
manager = TaskManager(executor=execute_operation)
# Create a task
task = await manager.create_task(
method="tools/call",
params={"name": "search", "arguments": {"query": "AI"}},
metadata={"user": "demo"},
execute=True, # Start execution immediately
)
print(f"Task ID: {task.id}")
print(f"Status: {task.status.value}")
# Poll for completion
while True:
current = manager.get_task(task.id)
if current.status in (TaskStatus.COMPLETED, TaskStatus.FAILED):
break
await asyncio.sleep(1)
# Get result
final = manager.get_task(task.id)
print(f"Result: {final.result}")
asyncio.run(main())