我使用Flask-AppBuilder构建了一个“大型”应用程序,有2个问题我没有看到答案。
其中任何一个的例子都是可爱的。
答案 0 :(得分:0)
使用什么框架并不重要,但是随着应用程序的增长,您可能希望隔离关键逻辑。出于上述原因,同时也为了适应未来(您可能希望将来改用新的前端,而不必重写繁琐的工作)。
我通常为此设置一个redis worker,并使用例如flask仅通过函数调用触发队列。这也使应用程序更具可伸缩性(并发用户,更多数据),因为如果需要,您可以简单地启动更多工作人员来监听您的队列。
本质上:
from redis import Redis
from rq import Queue
from rq.job import Job
conn = Redis()
q = Queue(connection=conn)
然后以烧瓶路径为例(对于appBuilder,使用视图或创建自己的lib)调用:
result = q.enqueue('utils.your_function_name',args=(id,))
在这里查看RQ以获得更多示例,以及如何监视作业状态等。