2

我有一个长期运行的 SharePoint 计时器作业,我想在中央管理中显示它的进度(所以我正在使用SPJobDefinition.UpdateProgress(int percentage)方法)。

假设我想在 foreach 循环中更新列表中有 50 000 个元素。如果我将类似的东西job.UpdateProgress((int) itemNo / itemCount)放在一个循环中,它是否会在每次调用方法时(50 000 次)向 SharePoint 服务器发送一个 Web 请求,或者仅当百分比实际发生变化时(不超过 100 次)?

我不希望因此出现任何明显的性能下降,并且我认为更多的请求可能会减慢工作速度。

此外,什么工具可以很好地查看请求和响应(Fiddler?或者其他对 Sharepoint 更好的工具?)。

4

1 回答 1

2

(在 SP2010 中)每次调用 job.UpdateProgress,SPJobDefinition 类都会发送一个 SPRequest。SPJobDefinition 不会在内部跟踪其完成百分比,因此除非它联系服务器,否则它无法知道您的新 int 是否是更新,因此它只是联系服务器。所以是的,调用这 50000 次可能会显着减慢您的代码。

找出此类内容的最简单方法(因为在线 MSDN 文档有时可能非常稀疏)是在 Microsoft.SharePoint.dll 上使用 .Net 反射器。就个人而言,我倾向于使用 ilSpy。

于 2012-08-21T16:43:30.887 回答