我正在尝试找出在向pSQL数据库自动添加新行后自动触发python脚本的最佳方法。我正在考虑在pSQL中创建一个“TRIGGER”,或者使用一些轮询逻辑(没有xp这样做)来不断地检查数据库的变化。我担心的是轮询可能是资源密集型的,并且不确定它在处理异步任务时有多高效。3个新行同时添加到数据库中。
有没有人有一个例子/见解,以有效的方式做到这一点?使用案例的背景如下:
用户完成一个typeform,一个新行在提交时自动添加到pSQL数据库中。(到这里为止一切都很好)然后我需要触发Heroku中托管的python脚本从数据库中获取新行,做一些事情并向用户发送一封电子邮件(SendGrid API),其中包含一些很酷的见解。提前感谢!
(NOTE- 我对Heroku一点都不感冒,任何云数据库都可以工作,只是提到这一点,因为有人可能知道一些很酷的客户端/无代码特性,可以为与轮询相关的数据库设置)
2条答案
按热度按时间esbemjvw1#
我认为这是Webhook的一个很好的用例。
如果你不熟悉Webhook,它是一种在你选择的URL上发生了什么事情时实时通知你的方法。在这种情况下,当有人提交了一个Typeform,你会在服务器上收到一个JSON有效载荷,其中包含提交的所有答案。
一旦你方收到有效载荷,你可以做两件事:将答案存储在数据库中并调用API。
以下是有效负载的示例:
下面是处理webhook有效负载的示例:https://glitch.com/~tf-webhook-receiver
和Typeform documentation。
tuwxkamq2#
更简单的方法是先将表单提交给您的函数,然后由该函数处理新数据的DB存储和通过SendGrid发送电子邮件通知,而不是先存储到DB。
Typeform有webhook functionality,您可以使用它来实现这一点。
您可以将它配置为将新填写的表单发送到您的函数(托管在Heroku上或您的情况下的任何地方),然后在该函数上执行任何必要的操作。