我被分配了一个任务,我要接收一堆员工,我需要获得他们的CIO-1(意味着他们老板的老板的老板……一直到经理是CIO的老板)。但是我不知道我是否以一种有效的方式来做。这是我的算法:
对于每个给定的雇员,请向Microsoft图形执行api请求以获取其经理。然后执行另一个api请求以获取该经理的经理...,直到获得我的经理为我们的CIO为止。这意味着如果给我500名员工,我将在一个for
循环内执行一个HTTP请求,并在另一个for
循环内执行一个“经理链”。
可以吗? Microsoft Graph是否会因为我将在短时间内执行许多查询而将我拒之门外?
答案 0 :(得分:0)
这实际上是一个算法问题,而不是图形问题。但是,是的,您确实需要在一天结束时查询数据。
但是,有比其他方法更聪明的方法。
与其建立一个查询所有最初员工的老板的循环,而没有一个循环来获取更高级别的老板,等等……您可以用另一种方法来实现。
首先,请确保您利用batch queries来最大程度地减少往返次数。
其次,我认为可以肯定地认为,某些时候某些雇员将拥有相同的老板。而不是多次询问谁是老板的老板,您需要确保只执行一次。
有两种不同的操作方式,维护一棵树,一个索引,始终在数据集上应用不同的内容...
最后,请记住,循环算法复杂度中的循环为o(n)^ 2。这总是比有两个后续循环(一个接一个)更糟糕。因此,尝试展平算法将有所帮助,也将帮助您构建批次。
在节流部分,请确保您通过guidance。是的,您可能会遇到这种情况,但是有两种方法可以进行优化。