【问题标题】:Event Handler on FastAPIFastAPI 上的事件处理程序
【发布时间】:2020-05-12 15:20:48
【问题描述】:

我正在研究最适合我的 Web 框架。

我们将开发几个微服务,并且我们需要在一些微服务上调度事件,这些事件可以在其他微服务上被监听。

是否有任何使用 FastAPI 的支持? 如果没有,有没有办法监听数据库事件操作? 我看到了来自starlette 的@app.on_event("shutdown|startup"),但我可以发送更多事件吗?

提前谢谢你。

【问题讨论】:

    标签: fastapi


    【解决方案1】:

    目前 FastAPI 中没有通用的事件调度/侦听功能。

    @app.on_event("shutdown|startup")

    是关于 ASGI 协议的一个小节。由 Starlette 实现并在 FastAPI 中可用

    https://asgi.readthedocs.io/en/latest/specs/lifespan.html

    FastApi/Starlette 仅是 Web 框架,仅限于 http 和 websocket 事件,它们不为任何特定的数据库事件提供预构建的事件处理程序。

    【讨论】:

      【解决方案2】:

      虽然 FastAPI 不支持常规事件分派,但有一些库可以对此进行补充。我一直在使用的是fastapi-events(免责声明:我是维护者)

      事件可以通过dispatch("event name", {"payload": "here"})进行调度

      事件的处理可以在代码中完成,也可以转发到远程队列。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-25
        • 1970-01-01
        • 2013-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-09
        相关资源
        最近更新 更多