• 全部
  • 问答

不知道如何解决使用mysql做锁定负载的问题。

haha_0_2000_2001 2008-10-01 03:53:46
情况如下:
1.数据库中有一个表叫 task 表。里面每项都是一个任务。
2.有10个工作线程,要从task 表中锁定一个任务(有锁定时间)。
3.假设 W(a) 锁定了一个任务 T(a)。这个时候其他工作线程是不能锁定这个任务的。
4.W(a)处理完任务,要将任务T(a)标记为已经处理。
5.如果W(a)长时间不返回,(锁定时间 --》》 当前时间)大于系统允许的范围,则其它工作者可以锁定这个任务进行处理。

请问,数据库访问部分使用存储过程吗?如何写呢。

假设存储过程名称 gettask();
参数为每个工作者的唯一标识符wid。
传出为锁定的任务或者空。如何写呢。

本人新手,请指教。
...全文
18 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hqaht 2008-12-18
可以在task表里增加一个状态字段,判断此任务是否处于锁定状态 如果处于锁定状态的话 然后判断其锁定时间和当前时间相比较 如果当前时间大于锁定时间,时间差相差为你认为的线程运行的最大时间,那么进行下一个线程
回复
懒得去死 2008-10-02
用IF ELSE控制语句就可以了,自己先写。遇到问题再说。
回复
haha_0_2000_2001 2008-10-01
每人在吗?
回复
发帖
MySQL
创建于2007-09-28

5.4w+

社区成员

MySQL相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-10-01 03:53
社区公告
暂无公告