funboost_task.py 1.0 KB

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