12345678910111213141516171819 |
- import time
- from funboost import boost, BrokerEnum, run_forever, funboost_aps_scheduler
- @boost("task_queue_name1", qps=0.5, broker_kind=BrokerEnum.REDIS_ACK_ABLE) # 入参包括20种,运行控制方式非常多,想得到的控制都会有。
- def task_fun(x, y):
- print(f'{x} + {y} = {x + y}')
- time.sleep(3) # 框架会自动并发绕开这个阻塞,无论函数内部随机耗时多久都能自动调节并发达到每秒运行 5 次 这个 task_fun 函数的目的。
- return True
- if __name__ == "__main__":
- # for i in range(2):
- # task_fun.pub(dict(x=i, y=i * 2))
- # task_fun.push(i, y=i * 2) # 发布者发布任务
- funboost_aps_scheduler.add_push_job(task_fun, 'cron', day_of_week='*', hour=10, minute=8, second=00,
- kwargs={"x": 5, "y": 6}) # 每隔3秒发布一次任务,自然就能每隔3秒消费一次任务了。
- funboost_aps_scheduler.start()
- task_fun.consume() # 消费者启动循环调度并发消费任务
- run_forever()
|