不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
用正确的方法去解决问题
编辑:dnawo 日期:2011-02-24
平台上有个服务,工作流程是前台用户将信息提交队列中,后台服务读取队列并完成相应的操作。最近有用户反映说服务很慢,提交了很久都未操作完成,查看了下队列,发现是提交时一些参数丢失了,由于信息不全,导致队列一直未被处理:

既然丢失了,先得想办法看能不能修复,因为Resid和SoftVer是多对一的关系,同样的Resid其他用户有提交成功过,所以修复SoftVer的值并不困难,写了个存储过程来完成:
后来再遇上这问题就手动执行下存储过程,今天想不如写个小程序来定时执行这个存储过程吧,但突然意识到这思路有问题,本末倒置了,存储过程虽能解决问题,但只是治标不治本的方法,正确的应是在前台对提交的信息进行验证,信息不全时阻止提交到队列并提示用户重新提交,这样只是一点小修改就可以了。

既然丢失了,先得想办法看能不能修复,因为Resid和SoftVer是多对一的关系,同样的Resid其他用户有提交成功过,所以修复SoftVer的值并不困难,写了个存储过程来完成:
复制内容到剪贴板
程序代码

declare @resid int,@softver int
declare err cursor for select resid from mz_queuetb where status=0 and softver=0 group by resid
open err
fetch next from err into @resid
while @@fetch_status=0
begin
select top 1 @softver=softver from mz_queuetb where status=1 and resid=@resid order by id desc
update mz_queuetb set softver=@softver where status=0 and softver=0 and resid=@resid
fetch next from err into @resid
end
close err
deallocate err
declare err cursor for select resid from mz_queuetb where status=0 and softver=0 group by resid
open err
fetch next from err into @resid
while @@fetch_status=0
begin
select top 1 @softver=softver from mz_queuetb where status=1 and resid=@resid order by id desc
update mz_queuetb set softver=@softver where status=0 and softver=0 and resid=@resid
fetch next from err into @resid
end
close err
deallocate err
后来再遇上这问题就手动执行下存储过程,今天想不如写个小程序来定时执行这个存储过程吧,但突然意识到这思路有问题,本末倒置了,存储过程虽能解决问题,但只是治标不治本的方法,正确的应是在前台对提交的信息进行验证,信息不全时阻止提交到队列并提示用户重新提交,这样只是一点小修改就可以了。






评论: 0 | 引用: 0 | 查看次数: 3831
发表评论
请登录后再发表评论!