如何使用 Postgres 和 GraphQL 在特定日期自动触发事件?

Posted

技术标签:

【中文标题】如何使用 Postgres 和 GraphQL 在特定日期自动触发事件?【英文标题】:How to automatically trigger an event by a particular date using Postgres and GraphQL? 【发布时间】:2019-10-12 14:46:59 【问题描述】:

我希望使用 GraphQL、Prisma、Postgres 和 React 创建一个预订系统,允许用户从日期 A 到日期 B 租用房产。当到期日 B 到来时,我希望数据库做两件事:

    在到期日过后触发一个事件,将其 Overdue 字段从 false 更新为 true。我当前的解决方法是有一个查询来获取截止日期,将其与当前日期进行比较,如果当前日期超过了截止日期,则将 Overdue 字段从 false 变为 true。但是,这个解决方案的问题是它只在执行查询时才有效,这意味着用户必须访问该网站。 第二件事与第一件事相关,但是如何通过电子邮件通知过期日期从数据库向用户发送主动警报?

【问题讨论】:

【参考方案1】:

我担心我回复得太晚了。但是,这仍然对您或其他人有所帮助:

立即触发事件简单明了。您可以使用 postgres 触发器来执行此操作。但是,为将来安排事件触发器(在您的情况下为 dateB)是您只能使用高级事件队列才能执行的操作。

据我所知,Prisma 无法做到这一点。您将不得不与其他一些事件队列集成。

不过,如果你想简化一些事情,你可以使用 Space Cloud(类似于 Prisma 的开源工具)-https://github.com/spaceuptech/space-cloud。它支持 postgresql 和 graphql。此外,Space Cloud 有一个内置的事件队列,您可以通过它在预定的未来时间触发您的自定义逻辑!!

PS:我是 Space Cloud 的联合创始人。如果您需要任何帮助,您可以加入我们的不和谐服务器 - https://discordapp.com/invite/ypXEEBr!

【讨论】:

以上是关于如何使用 Postgres 和 GraphQL 在特定日期自动触发事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Dockerized GraphQL + Postgres 设置中运行 Prisma 迁移?

为啥我使用 graphql > hasura > postgres 保存日期时出错

Apollo/Graphql,Postgres - 为啥这个查询返回 null? [复制]

在基于 Django 的 GraphQL API 中为 postgres 表创建全局搜索字段的最佳方法?

Node.js Sequelize UUID 主键 + Postgres

text errores en postgres y graphql