2

我们的情况是许可证较少(用于 GUI 测试工具 Silktest)和更多用户。

我正在尝试构建一个系统,通过预订可以访问许可证。

要执行自动化套件,用户必须创建一个预订,这反过来会用完一个许可证。同时其他许可证将是免费的。

一个简单的 FIFO 队列无法解决它,因为单个用户一次只能执行一个套件。

是否有任何标准算法可以帮助有效地分发许可证。

4

1 回答 1

0

定义一个时代。统计数据发生在一个时代。(说两个小时)。

定义一个刻度。许可证请求在每个滴答声中都被接受/解决。(比如说 30 秒)

保留有关每个许可证持有多长时间以及由谁持有的统计信息。

为每个用户分配一个权重,他们使用许可证的次数越多,权重就会减少,但仅限于设定的时间。

每个刻度:

  1. 收集想要许可证的人。
  2. 记录许可证的发布并收集每个用户统计的许可证签出时间。
  3. 对于每个可用许可证:
  4. 在请求权重最高的用户和最长的等待时间之间进行选择。如果超过一个用户在这两个标准上并列,则随机选择。
  5. 安排减少获胜用户的权重,时间等于他们之前持有许可证的平均时间加上他们持有此许可证的时间。

每个时代:

  1. 调整统计数据,使其不会超出

希望这将根据用户使用许可证的差异自动调整许可证签出。那些想要长时间或频繁或偶尔使用它的人仍然应该获得一个许可证,随着时间的推移,它有望达到平衡。

另一个

于 2013-08-24T20:53:16.043 回答