我正在尝试构建一个事件队列。我希望能够将记录添加到我的数据库中的事件队列表中,然后让一个单独的脚本通过并执行事件。
有没有办法让“Executer”脚本坐在那里等到它收到事件已添加到表中的信号?显然,我无法随机查询数据库,因为这会非常浪费。
我知道这是一个广泛的问题,所以不要求握手,只是朝着正确的方向前进。
答案 0 :(得分:1)
如果您的数据库有任何要解决的问题,那么它将是特定于数据库的。例如,在PostgreSQL中,您可以使用LISTEN
/ NOTIFY
。
你还可以使用其他东西通知执行者唤醒,从一个简单的系统信号($SIG{...}
种类)到UDP数据包,再到全面的工作排队&通知系统。
但实际上,我怀疑你需要担心这个问题。你真的计划了一个简单的选择检查工作需要多长时间?可能在单毫秒范围内。如果每隔几秒轮询数据库,性能影响可以忽略不计。
答案 1 :(得分:0)
有些DBMS支持这一点。作为MySQL中的示例,您可以使用UDF并从触发器执行外部程序。您使用的DBMS是什么?