如何使用 SQLAlchemy / Python 延迟缓慢的数据库操作

How to defer a slow database operation with SQLAlchemy / Python

我有一个数据库的 REST 接口,在 Python FastAPI + SQLAlchemy 中实现。我想 运行 对我的数据进行一些(相对)昂贵的操作,例如计算加密哈希或签名。我希望能够:

  1. 执行插入,以便数据库检查所有参照完整性。
  2. Return前端的REST响应(insert的主键)
  3. 异步计算成本高hash/signature/whatever,并更新到数据库中(相同table)。

我更喜欢跨数据库解决方案,但似乎 运行在 insert/update 上触发一个触发器可能是可行的方法。如果是这样,我的生产目标是 PostgreSQL。

有没有人推荐他们喜欢的方法?

我会尝试将问题分开。

  • 构建一个快速的 REST 服务来完成第 1 项和第 2 项(关注点:一致的数据持久性);
  • 使用 pgAgent 或 s/th 类似的方法(关注点:数据“装饰”)创建一个在后台执行第 3 项的预定作业,或使用 notify/listen 设置调用单独的过程。

运行 触发器将同步执行操作。据我了解,这不是您的本意。