【发布时间】:2010-09-21 15:49:54
【问题描述】:
我正在编写一个使用 ActiveRecord 的Adhearsion 组件。问题是该组件可能运行了几分钟(一个调用的长度)。在此期间,组件有一个 ActiveRecord 对象作为实例变量。此对象用完连接池中的一个数据库连接。根据调用者的数量,连接池可能会过早耗尽。通话期间数据会保存多次,但不需要立即可用。虽然使用 ActiveRecord 非常方便,但它不是必需的。我可以想象出几种解决方案,并想向社区征求意见、提示和替代解决方案:
- 有一个非常大的连接池(> 1000 个连接)。
- 每当我的 ActiveRecord 对象更改时,申请并释放数据库连接。不知道怎么做,代码示例将不胜感激。
- 将数据写入日志文件,该文件会定期导入数据库。
- 在单独的服务器进程上设置 Web 服务,通过 HTTP 请求接受数据并将其写入数据库。
- 使用将数据发送到的消息队列。工作人员将数据导入数据库。
我不喜欢需要运行外部软件的解决方案(消息队列、Web 服务)。
【问题讨论】:
-
您要达到多少并发活动呼叫?
标签: ruby database activerecord asynchronous