请教在C语言中如何终止一个超时的数据查询

zsm2007cs 2011-08-08 05:09:43
最近遇到在生产中查询一个大范围内的大量数据时,由于耗时较长,进程一直被查询操作占用,导致后来的消息不能得到及时处理,在消息队列中堵塞大量消息。想要找个完善的解决方案,在设定的超时时间到后终止该查询。
之前使用了alarm时钟信号来进行捕获超时信号,捕获后使用了goto语句跳转并对数据库回滚,但是这种方法有时会导致进程与数据库断开连接,不知道是什么原因造成的。请有经验的大虾指点一二,感激不尽!
...全文
54 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsm2007cs 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lyzzzwx 的回复:]
这个回滚,要重新连接数据库?在这时wait下就可以了吧。
[/Quote]
不要重新连接数据库的
zsm2007cs 2011-08-08
  • 打赏
  • 举报
回复
放入另外的线程来做查询我也想过,但主要是并发查询比较多,效率不知道如何,再就是怕改动太大出现新的BUG。这是最近要修补的一个
赵4老师 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luciferisnotsatan 的回复:]
把查询放到另一个线程里去做。
[/Quote]
英雄所见略同
lyzzzwx 2011-08-08
  • 打赏
  • 举报
回复
这个回滚,要重新连接数据库?在这时wait下就可以了吧。
luciferisnotsatan 2011-08-08
  • 打赏
  • 举报
回复
把查询放到另一个线程里去做。

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧