【发布时间】:2020-03-04 22:58:47
【问题描述】:
PostgreSQL 使用background workers 来允许进程以并发方式工作,并且它们具有供后端/扩展开发人员控制它们的 API。到目前为止,我已经成功地在一个演示扩展中使用了这个功能,成功地产生了一些工人。
我的一名工人必须等待另一名工人完成。到目前为止,我正在做的是一个空闲工作人员的无限循环,直到正在等待的工作人员完成,这可能是非常低效的。所以我想知道如何让空闲进程休眠,直到发送一些信号?我会寻找什么?是否有类似的扩展程序可以用于指导?
【问题讨论】:
-
什么样的信号?是signal(2)吗?还是别的什么?你读过select(2)/poll(2)之类的功能吗?如果你使用的是 Linux,你也可以使用eventfd(2)..
-
不是指任何特定的信号,而是指 PostgreSQL API 后端中可用的东西,以帮助我实现我的目标(如果有的话)。感谢您的建议,如果 PostgreSQL 后端不提供此类功能,我会尝试使用它们。
标签: c postgresql postgresql-12 postgresql-extensions