数据库更新处理方案倒底哪个强?

Grrrr 发布于 2014/10/23 16:30
阅读 868
收藏 1

大家帮看看哪种设计会更好些:

目前应用直接和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来处理了。

加载中
0
lidanger
lidanger
不知道你最终到底采用了哪一种
Grrrr
Grrrr
采用了第二种,不过后来发现json真是个好东西,结果直接上mongodb了。
返回顶部
顶部