node.js - 如何从另一个 Node.js 程序向 Heroku 上的 PostgREST 发送 SIGHUP 信号?

标签 node.js caching heroku signals postgrest

我有一个 PostgREST使用 the buildpack 部署在 Heroku 上的实例.

Postgres 架构由使用 node-pg-migrate 的 Node.js 程序创建.

迁移运行后,模式发生变化,PostgREST 需要 reload the schema更新其模式缓存。

要在不重启 PostgREST 服务器的情况下刷新缓存,可以选择向服务器进程发送 SIGHUP 信号:killall -HUP postgrest

由于我从 Node.js 程序 (npm run migrate:up) 运行迁移,因此使用迁移后脚本发送该信号似乎很有意义。我什至不确定我是否可以将这样的信号从另一台服务器发送到 PostgREST 实例。

基本上,我要问的是如何从另一台服务器上的 Node.js 程序向 Heroku 上的 PostgREST 发送 SIGHUP 信号。

最佳答案

跨服务器触发模式重新加载的一种方法是让您的迁移后脚本运行 NOTIFY postgrest_reload;在 PostgREST 附加到的数据库中。然后在与 PostgREST 相同的服务器上,运行类似 pg_listen 的工具捕捉那个事件并发送叹息。例如:pg_listen <db-uri> postgrest_reload "killall -HUP postgrest" .

您甚至可以让 PostgREST 在架构更改时自动重新加载其架构缓存(使用 DDL 触发器),如 https://postgrest.com/en/v4.4/admin.html#schema-reloading 中所述。

关于node.js - 如何从另一个 Node.js 程序向 Heroku 上的 PostgREST 发送 SIGHUP 信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49219318/

相关文章:

android - Glide : get cached file location in Android/Java

Heroku:django.core.exceptions.ImproperlyConfigured:找不到 GDAL

java - Play应用程序不执行heroku上的计划任务

node.js - 扩展 mean.io 的用户包

MySQL 缓存一切

iOS - 是否可以缓存分块的 HTTP 响应?

python - 在生产中访问 Django 域时出现 400 错误

javascript - 如何从服务器端创建可重定向的 strip 支付网址?

javascript - 是否可以克隆 ES6 promise ?

node.js - 前端向后端发送图像文件数据