实时检查数据库发送命令

时间:2011-05-14 12:47:46

标签: mysql node.js real-time

我正在使用电话系统的用户帐户,一旦他们的余额达到零,我需要断开用户。

  • 用户发起呼叫
  • 检索当前余额
  • 计算电话的价格,并计算用户可以购买的整整几分钟
  • 会话挂断时间随后存储在数据库中

我需要轮询数据库(每秒?)以查明会话挂断时间是否为<现在()。

有关轮询数据库的任何建议,我目前使用MySQL,但我愿意改变。

cron不会经常运行。因为我每分钟都要收费,所以我需要确保这个脚本的准确时间。

我正在查看node.js来完成任务,从未使用过node-它是否合适? 是否值得使用数据库的发布/订阅功能? (不能冒任何数据丢失的风险,因为这意味着用户可以永远继续打电话)

感谢任何建议。

P.S一切都将是服务器端。没有前端来解雇请求。

1 个答案:

答案 0 :(得分:1)

对于注释,您可能没有以正确的方式接近这个。据我所知,电信公司通常用于计费的是拥有内容的快照,以便更改数据,并定期批量更新以根据需要保留所述数据。

在数据库术语中,将其视为使用使用内存引擎的代理表,使用定期开始/重命名mem_table / create new mem_table / commit,然后使用old_mem_table / drop old_mem_table / commit开始/更新static_table

最糟糕的情况是失去几分钟的结算。好处是它可以使硬盘驱动器不必进行不间断的读/写(考虑到它们所面临的吞吐量,它们无论如何都无法做到。)

至于你的(node.js)问题,为什么不使用setInterval()?