Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import asyncio
- from datetime import UTC,datetime, timedelta
- from taskiq import TaskiqScheduler
- from taskiq_redis import ListQueueBroker, ListRedisScheduleSource, RedisScheduleSource
- TASKIQ_REDIS_URL = 'redis://127.0.0.1:6379/2'
- broker = ListQueueBroker(url=TASKIQ_REDIS_URL)
- scheduler_source = ListRedisScheduleSource(TASKIQ_REDIS_URL)
- # scheduler_source = RedisScheduleSource(TASKIQ_REDIS_URL)
- scheduler = TaskiqScheduler(
- broker=broker,
- sources=[scheduler_source],
- )
- @broker.task
- async def task_test_scheduler():
- print('---------- start task_test_scheduler ----------')
- await asyncio.sleep(1)
- print('---------- stop task_test_scheduler ----------')
- async def main():
- schedule_id = 'task_test_scheduler'
- start_at = datetime.now(UTC) + timedelta(minutes=1, seconds=1)
- for _ in range(3):
- await (
- task_test_scheduler
- .kicker()
- .with_schedule_id(schedule_id)
- .schedule_by_time(scheduler_source, time=start_at)
- )
- if __name__ == '__main__':
- # Start broker: taskiq worker tkq_test:broker tkq_test --workers 1
- # Start scheduler: taskiq scheduler tkq_test:scheduler
- asyncio.run(main())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement