0

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

  1. 有没有办法将大型应用程序“拆分”为多个组件(类似于蓝图所做的)。
  2. 我的业务逻辑大部分都在 View 中结束了,但是......其中一些感觉不合适。我在模型中添加的东西很少,再次感觉不对。这是倾向于创建长时间运行的进程的逻辑,所以我一直在测试 Celery。

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

4

1 回答 1

0

您使用什么框架并不重要,但是一旦应用程序增长,您可能希望隔离关键逻辑。既是出于上述原因,也是为了面向未来(您可能希望将来迁移到新的前端,而无需重写繁重的工作)。

我通常为此设置一个 redis 工作程序,并仅使用例如烧瓶来通过函数调用触发队列。这也使应用程序更具可扩展性(并发用户、更多数据),因为如果需要,您可以简单地启动更多工作人员来监听您的队列。

在本质上:

from redis import Redis
from rq import Queue
from rq.job import Job

conn = Redis()
q = Queue(connection=conn)

然后作为烧瓶路由中的示例(对于 appBuilder,使用视图或创建自己的库)调用:

result = q.enqueue('utils.your_function_name',args=(id,))

在这里查看 RQ 以获得更多示例,以及如何监控您的工作状态等。

https://python-rq.org/

于 2019-08-13T18:34:23.530 回答