代理在同一时间执行相同代码多次致电



我有生成文档的Java代理。我还为这些文档提供了一个自定义的唯一跟随号码,从1开始,每次增量 1。我可以看到获得最后一个数字的位置,我将此数字添加。因此,每当代理运行时,它会增加此数字,这会通过该问题底部的一段代码发生。有时,该代理会同时称为,这导致获得相同的数字。因此,我有具有数字1001、4次而不是1001、1002,1003,1004的文档。

我试图查看代理是否可以一次运行一个,但仅适用于计划代理。

我运行以生成唯一数字的代码为:

String ReturnValue = "";
                View nvwVolgnr =  iOrderDB.getView("Volgnummer");
                lotus.domino.Document docVolgnr = nvwVolgnr.getDocumentByKey("Order");
                if ( docVolgnr!=null){
                    String strVolgnr = docVolgnr.getItemValue("Volgnummer").toString();
                     //System.out.println("strVolgnr " + strVolgnr);
                    //Object intVolgnr = docVolgnr.getItemValue("Volgnummer");
                    strVolgnr = strVolgnr.replace("[", "");
                    strVolgnr = strVolgnr.replace("]", "");
                    double intVolgnr = Double.parseDouble(strVolgnr);
                    strVolgnr = strVolgnr.replace(".0", "");
                    //System.out.println("strVolgnr " + strVolgnr);
                    strVolgnr = "000000" + strVolgnr;
                    //System.out.println("strVolgnr " + strVolgnr);
                    strVolgnr = strVolgnr.substring(strVolgnr.length() - 6);
                    ReturnValue = strVolgnr;
                    intVolgnr = intVolgnr + 1;
                    Double dblVolgnr = new Double(intVolgnr);
                    //System.out.println("strVolgnr " + strVolgnr);
                    //Object objVolgnr =  intVolgnr;
                    docVolgnr.replaceItemValue("Volgnummer", dblVolgnr);
                     if (docVolgnr.save())
                        {
                        }

即使该代理同时运行

,也有任何方法可以获取唯一数字(以增量(

最简单的方法可能是设置一个真实点:这可能是额外的本地代理,文件,数据库或API。您可以从其中任何一个中获取下一个数字。

这意味着您设置其中之一,以使您的代理商为下一个数字提供。由于这种情况发生在一个位置,因此您将不再有任何重复。

如果不需要增加数字,但是您只需要为每个数字提供一个唯一的数字,就可以查看UUID。但我认为事实并非如此。

相关内容

  • 没有找到相关文章

最新更新