问题:通过接口进行hive查询,太慢,使用fastapi框架,本想使用BackgroundTasks,但hive没有异步处理框架。查询到说是可以使用asyncio方法实现,但试了下后,发现不可以
解决:使用rq队列,通过队列方式处理hive查询,然后进行回调
注意:
1、jobs中的任务文件,引入config时注意路径,问题,可能需要把config所在目录加入项目环境变量
2、rq执行有时间限制,配置redis时需要配置下
# 增加超时时间为300秒
q = Queue(connection=redis_conn, default_timeout=300)
或者
job = q.enqueue(my_function, args=(arg1, arg2), timeout=300)