繁体   English   中英

代理在执行相同代码的同时多次调用

[英]Agent called multiple times at the same time executing the same code

我有一个生成文档的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。 但我相信情况并非如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM