首页 新闻 赞助 找找看

限制扫描,通过代码实现

0
悬赏园豆:160 [已解决问题] 解决于 2018-10-25 15:13

我有一个终端扫描器,扫描器扫描多个设备,每个设备设置的扫描频率是 5分钟内只能扫描8次,我现在的思路是每次扫描前去数据库查询每个设备前5分钟扫描是否大于8次了,这样很耗费数据库性能,所以在想怎么通过代码在前端进行验证。

C#
Liwuyi的主页 Liwuyi | 初学一级 | 园豆:-100
提问于:2018-10-22 15:34
< >
分享
最佳答案
0

你说的是pda还是什么? 定义两个变量,一个起始时间字段,一个数量字段,两个字段初始化为空,当第一次扫描的时候给时间和数量都赋值,后面扫描的话用当前时间减去初始时间在五分钟内就判断数量,超过五分钟就清空两个字段继续赋值,依次循环 就好了

收获园豆:100
jqw2009 | 老鸟四级 |园豆:2439 | 2018-10-23 10:02

你怎么判断五分钟的数量呢?
举个例子:
9:01,扫描 2次;
9:02,扫描 2次;
9:03,扫描 2次;
9:04,扫描 2次;
到9:05的时候是不能扫描的,
只有到了9:06才能扫描2次;
9:07,不能扫描 ,
9:08,扫描2次,
把时间都记录下来?

Liwuyi | 园豆:-100 (初学一级) | 2018-10-23 10:22

@Liwuyi: 记录 用list集合,每次循环比较一下时间和数量就行了,超过五分钟的就可以清除掉了,已经教你到这份上了,后面的你自己想想吧

jqw2009 | 园豆:2439 (老鸟四级) | 2018-10-23 14:55
其他回答(6)
0

自己定义个字段储存上次扫描的时间不行?

收获园豆:10
梦里的畅泳 | 园豆:159 (初学一级) | 2018-10-22 15:45

你是想把扫描时间存储到数据库了?
我现在就是这样做的?每次扫描前验证下,从数据库里查询下,5分钟内只是否扫描到了8次,但是数据量太大了,很耗性能,操作很慢。所以我想通过代码不通过数据库查询来验证,通过代码验证。

支持(0) 反对(0) Liwuyi | 园豆:-100 (初学一级) | 2018-10-22 15:49

@Liwuyi: 变量啊

支持(0) 反对(0) 梦里的畅泳 | 园豆:159 (初学一级) | 2018-10-23 14:07
0

在扫描处理程序中已开始就 设一个 session["count"]=1
每次触发就+1,达到次数就不让扫描?

用session就可以不用放到表中。

收获园豆:10
徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-10-22 16:15
1

每次扫描都记录在缓存里面,扫描时判断超过五分钟的删掉可以得到五分钟内的次数。

收获园豆:10
地火水 | 园豆:1290 (小虾三级) | 2018-10-22 16:16
0

设置一个本地存储,每扫描一次就增加1,大于8则不能扫描,设置一个定时器,每五分钟则初始化一次数值。这个前端就可以,不需要和具体数据信息存储到后台。

收获园豆:10
疯癫释流年 | 园豆:306 (菜鸟二级) | 2018-10-22 16:25
0

本地储存啊,app的话存app设备上,web存cookie

收获园豆:10
刀狂剑痴叶小钗 | 园豆:212 (菜鸟二级) | 2018-10-22 19:01
0

这个问题描述的不清晰,终端扫描器是硬件吧,如何和系统连接的,调用的程序是桌面程序吗,还是B/S结构的项目进行服务端调用?是否有多个终端共享一个扫描的频率限制?

收获园豆:10
seabluescn | 园豆:104 (初学一级) | 2018-10-23 10:04

是PDA,通过无线链接服务器,一个扫描器 扫描多个设备,每个设备设置的扫描频率是 5分钟内只能扫描8次。

支持(0) 反对(0) Liwuyi | 园豆:-100 (初学一级) | 2018-10-23 10:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册