实时检查数据库发送命令

我正在使用电话系统的用户满意度,当他们的余额达到零时,我需要断开用户的连接。

  • 用户发起呼叫
  • 当前余额被检索
  • 计算电话费用,计算出用户可以购买多less分钟
  • 会话挂断时间然后被存储在数据库中

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

任何build议,经常投票数据库,我目前使用MySQL,但我愿意改变。

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

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

任何意见表示赞赏。

PS的一切都将是服务器端。 将没有前端发射请求。

对于笔记,你可能不会以正确的方式接近。 就我所知,电信公司通常用于计费的方法是对正在发生变化的数据进行内存快照,以及定期批量更新以根据需要保存所述数据。

在数据库方面,把它看作是使用一个使用内存引擎的代理表,使用old_mem_table / drop old_mem_table / commit定期开始/重命名mem_table /创build新的mem_table / commit,然后开始/更新static_table。

可能发生的最糟糕的是失去几分钟的计费。 这样做的好处是可以避免硬盘读取/写入(无论如何,考虑到它们所面临的吞吐量,这些操作无法完成)。

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