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