我正在为一个电话系统和用户帐户,我需要断开用户一旦他们的平衡达到零。
用户发起呼叫
已检索当前余额
计算电话价格,并计算出用户可以购买的总分钟数
会话挂断时间随后存储在数据库中
我需要调查数据库(每秒?)以确定会话挂起时间是否为=任何关于经常轮询数据库的建议,我目前使用MySQL,但我愿意更改。cron
不会经常运行。因为我将得到每分钟的账单,我需要确保这个脚本的时间是准确的。
我在看node.js来完成这个任务,从来没有使用过node-它合适吗?
是否值得使用数据库的发布/订阅功能?(不能冒任何数据丢失的风险,因为这意味着用户可以永远继续打电话)
任何建议都很感激。
所有的东西都是服务器端的。不会有前端的开火请求。
最佳答案
对于注释,您可能没有正确的方法来处理这个问题。据我所知,电信公司通常做什么计费,是有一个在内存中快照的数据正在改变,以及定期批量更新,以持久化所需的数据。
在DB术语中,可以将其视为使用使用内存引擎的代理表,使用周期性的begin/rename mem_table/create new mem_table/commit,然后使用old_mem_table/drop old_mem_table/commit执行begin/update static_table。
最糟糕的情况是失去几分钟的账单。这样做的好处是,它避免了硬盘驱动器进行不间断的读/写操作(考虑到它们所面临的吞吐量,它们无论如何都做不到)。
特别是(node.js)问题,为什么不使用setInterval()?
关于mysql - 实时检查数据库以发送命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6001921/