在项目开发过程中,遇见过这样的情况:对一个机构的数据进行提数,对于提过的不能重复再提。在实际使用过程中,发现以下两个问题。
第一:同一用户对同一笔数据重复提了两次;
第二:不同的用户对同一笔数据提了两次;
分析原因,第一情况是因为,同一用户,在点击提数时,连续点击了两次,由于数据量比较大,在第一批数据还没有生成轨迹时,提数了这批数据。第二个问题,类似第一个,两个用户同时操作,是由于数据量大,使得在生成轨迹和抽取数据时发生时间差,而重复抽取数据。
解决思路,
第一个,点击“提数”后就将其制灰;
第二个,在提数的逻辑处理类中,加一个arraylist的static变量,保存正在提数的机构。每一个机构进来提数时,首先判断arraylist中是否存在这个机构正在提数,若存在,就等待,若不存在,就加入到队列后进行提数。当提数完成后从arraylist中删除这个机构。
第一:同一用户对同一笔数据重复提了两次;
第二:不同的用户对同一笔数据提了两次;
分析原因,第一情况是因为,同一用户,在点击提数时,连续点击了两次,由于数据量比较大,在第一批数据还没有生成轨迹时,提数了这批数据。第二个问题,类似第一个,两个用户同时操作,是由于数据量大,使得在生成轨迹和抽取数据时发生时间差,而重复抽取数据。
解决思路,
第一个,点击“提数”后就将其制灰;
第二个,在提数的逻辑处理类中,加一个arraylist的static变量,保存正在提数的机构。每一个机构进来提数时,首先判断arraylist中是否存在这个机构正在提数,若存在,就等待,若不存在,就加入到队列后进行提数。当提数完成后从arraylist中删除这个机构。