2020-09-07 05:46发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
您知道吗,有人知道在线程/线程中增加变量的安全方法(在这种情况下,IdM 7.2中是全局变量。)在全局/公共JavaScript中。
如果我使用uGet ... Var和uSet ... Var,我会遇到可能的比赛条件,因为我没有拥抱这两个电话的信号灯。
感谢报酬
Ansgar
马特,你好
感谢您的想法。 我决定改用数据库序列。 这对开发人员来说不是那么透明,但是它很容易并且很安全。
嗨安斯加尔,
不确定您的问题在这里。 在增加Global Vars时,我还没有看到任何问题,并且我已经在一些相当高的负载情况下做到了。
您能解释一下发生了什么吗,并包括您使用的IDM版本吗?
谢谢!
嗨,马特,
我在全局javascript中使用全局计数器,如下所示
//获取全局var var numStr = uGetGlobalVar(" A_GLOBAL_VAR"); //增加值(只有符号代码,因为我们需要一些字符串转换) numStr ++; 用数字做某事 //设置全局变量 uSetGlobalVar(" A_GLOBAL_VAR",numStr);
此脚本是从不同的地方调用的,因此恰巧该脚本同时运行2次。
如果第二个调用者在第一个调用者调用A_GLOBAL_VAR之前获取A_GLOBAL_VAR,则两个调用者都使用相同的值,并且全局变量仅增加一次。
希望更清楚。
可能是这样。
请注明您的恩质作为答案,以使线程被关闭。
Matt
是的,我想是的。 这可能很难破解。但是我可以想到几种理论上都可以使用的方法,但这可能会为您提供一些有用的方法。
1。 在更新变量的每个任务之后,请暂停/休眠以允许其他进程停止。 这可能无法缩放。
2。 您是否可以使用属性或创建某种标志,该标志可以供进程使用以查看其是否已"签出",并等待其清除后再继续? 标记的值可能需要是日期/时间戳。
不太确定如何设置这些标记,不幸的是,目前我没有足够的带宽来制作类似这样的东西,但是也许 它将为您或社区中的其他人激发一个想法。
最多设置5个标签!
马特,你好
感谢您的想法。 我决定改用数据库序列。 这对开发人员来说不是那么透明,但是它很容易并且很安全。
嗨安斯加尔,
不确定您的问题在这里。 在增加Global Vars时,我还没有看到任何问题,并且我已经在一些相当高的负载情况下做到了。
您能解释一下发生了什么吗,并包括您使用的IDM版本吗?
谢谢!
嗨,马特,
我在全局javascript中使用全局计数器,如下所示
此脚本是从不同的地方调用的,因此恰巧该脚本同时运行2次。
如果第二个调用者在第一个调用者调用A_GLOBAL_VAR之前获取A_GLOBAL_VAR,则两个调用者都使用相同的值,并且全局变量仅增加一次。
希望更清楚。
可能是这样。
请注明您的恩质作为答案,以使线程被关闭。
Matt
是的,我想是的。 这可能很难破解。但是我可以想到几种理论上都可以使用的方法,但这可能会为您提供一些有用的方法。
1。 在更新变量的每个任务之后,请暂停/休眠以允许其他进程停止。 这可能无法缩放。
2。 您是否可以使用属性或创建某种标志,该标志可以供进程使用以查看其是否已"签出",并等待其清除后再继续? 标记的值可能需要是日期/时间戳。
不太确定如何设置这些标记,不幸的是,目前我没有足够的带宽来制作类似这样的东西,但是也许 它将为您或社区中的其他人激发一个想法。
一周热门 更多>