Advertisement
megalaren

Untitled

Jun 19th, 2025 (edited)
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.21 KB | None | 0 0
  1. import asyncio
  2. from datetime import UTC,datetime, timedelta
  3.  
  4. from taskiq import TaskiqScheduler
  5. from taskiq_redis import ListQueueBroker, ListRedisScheduleSource, RedisScheduleSource
  6.  
  7. TASKIQ_REDIS_URL = 'redis://127.0.0.1:6379/2'
  8.  
  9. broker = ListQueueBroker(url=TASKIQ_REDIS_URL)
  10. scheduler_source = ListRedisScheduleSource(TASKIQ_REDIS_URL)
  11. # scheduler_source = RedisScheduleSource(TASKIQ_REDIS_URL)
  12.  
  13. scheduler = TaskiqScheduler(
  14.     broker=broker,
  15.     sources=[scheduler_source],
  16. )
  17.  
  18.  
  19. @broker.task
  20. async def task_test_scheduler():
  21.     print('---------- start task_test_scheduler ----------')
  22.     await asyncio.sleep(1)
  23.     print('---------- stop task_test_scheduler ----------')
  24.  
  25.  
  26. async def main():
  27.     schedule_id = 'task_test_scheduler'
  28.     start_at = datetime.now(UTC) + timedelta(minutes=1, seconds=1)
  29.     for _ in range(3):
  30.         await (
  31.             task_test_scheduler
  32.             .kicker()
  33.             .with_schedule_id(schedule_id)
  34.             .schedule_by_time(scheduler_source, time=start_at)
  35.         )
  36.  
  37.  
  38. if __name__ == '__main__':
  39.     # Start broker:     taskiq worker tkq_test:broker tkq_test --workers 1
  40.     # Start scheduler:  taskiq scheduler tkq_test:scheduler
  41.     asyncio.run(main())
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement