【发布时间】:2021-06-21 19:52:21
【问题描述】:
我想在服务器启动时对外部服务进行异步 HTTP 调用,并从那里获取一个 URL,然后我可以在我自己的 Sanic 路由中使用它。例如,通过httpx 调用获取需要作为我的实际路由的字符串(为简单起见,假设外部服务返回的字符串是api/users/),然后将其用作我的 Sanic 微服务中的路由.
不幸的是,before_server_start 侦听器似乎无法解决问题,因为它在路由加载后运行,如果我尝试更新路由的字符串值,我会得到一个 FinalizationError("Cannot finalize router more than once.")。
在定义/添加路由之前,我还有什么方法可以连接我的电话吗?我想让它尽可能地与 Sanic 应用程序耦合,即不使用在它之前运行的实用程序脚本,而是在每次应用程序启动时触发对外部服务的调用。
【问题讨论】: