数据库更新处理方案倒底哪个强?
大家帮看看哪种设计会更好些:
目前应用直接和redis缓存交互,对于需要做数据更新的操作是 拼接SQL,然后把sql放到redis的一个列队里面,后台用crontab定时消耗这个列队来进行数据库更新,目前运行良好。
由于需要,系统引入了beanstalkd任务系统,主要做一些耗时的操作。于是也想把SQL处理这块也移植到beanstalkd里面,统一作为任务来处理。这样系统分工更明确些,结合任务状态可以更好的处理执行失败的sql.
现在的设计有2个:
1.沿用拼接sql,任务数据就是sql,接到任务后运行即可。
insert into user(name) values('Test');
2.采用ORM映射(mybatis),任务数据是json格式,拿到后直接序列化为相应对象,然后调用对应的接口直接操作。
{
"action": "insert",
"mapper": "user",
"data": {
"name": "Test"
}
}
各有各的优点,缺点。想听听大家的看法,总之肯定是要移植到beanstalkd来处理了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
采用了第二种,不过后来发现json真是个好东西,结果直接上mongodb了。
不知道你最终到底采用了哪一种
中国山东找蓝翔