我正在寻找像PL / Proxy这样的工具,但是当数据库脱机时,通过排队查询以供以后执行,它将起作用。只需要一些非常简单的插入和更新(并且可以轻松处理)通过存储过程调用),所以客户端应用程序自然不需要实时知道响应。
应该重试瞬态故障(比如DB离线),并且应该记录永久性故障。
客户端应用程序是用perl编写的,但真正的代理服务器不应该关心它。
我准备自己编写,但如果有人已经发明了这个轮子,我很乐意节省一些时间。
答案 0 :(得分:2)
这在很大程度上取决于您的需求。您可以使用连接池,就像kgrittn建议的那样。我不相信,因为听起来你需要异步的东西。我想你可能需要写一个。这就是说,我认为大部分都是开箱即用的组件。我想你可能需要一些最后一英里的代码,但就是这样。
我会考虑用三个基本组件来构建它:
消息队列。你可以使用各种各样的东西。您可以使用电子邮件,jabber,RabbitMQ ....随便挑选。我猜测RabbitMQ之类的东西最简单。
一个小程序,它会侦听队列,获取消息并在数据库上运行查询。数据库不可用将被视为临时错误。无法运行它们的程序将被视为永久性错误。
您可能需要一个库来连接和抽象消息队列(因此您的应用程序不必知道它正在将消息队列发送到消息队列中)。