Flask Appbuilder大型应用程序

时间:2019-03-05 03:01:07

标签: flask-appbuilder

我使用Flask-AppBuilder构建了一个“大型”应用程序,有2个问题我没有看到答案。

  1. 有什么方法可以将大型应用程序“拆分”为多个 组件(类似于蓝图)。
  2. 我的业务逻辑大部分都出现在View的视图中,但是... 它在那里感觉不对。我加的东西很少 模特,再次感觉不对。这种逻辑倾向于 创建长期运行的流程,所以我一直在测试Celery。

其中任何一个的例子都是可爱的。

1 个答案:

答案 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以获得更多示例,以及如何监视作业状态等。

https://python-rq.org/