sharepoint - 更新 SharePoint 作业的进度

标签 sharepoint

我有一个长时间运行的 SharePoint 计时器作业,我想在管理中心显示它的进度(因此我使用 SPJobDefinition.UpdateProgress( int 百分比) 方法)。

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

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

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

最佳答案

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

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

关于sharepoint - 更新 SharePoint 作业的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12055769/

相关文章:

javascript - 尝试为 SharePoint 实现 CORS 时出现 401

javascript - 通过 Js 检索 Sharepoint 列表

css - SharePoint 母版页未设置链接样式

html - SharePoint Designer 即时重新格式化 HTML,能否禁用?

css - 在 SharePoint 中链接到外部样式表的最佳方式是什么

iPhone : Sharepoint GetListItemChangesSinceToken method returns item recursively

javascript - 需要修改CSS为megamenu才能使其工作

Sharepoint 中的 Excel 模板 - 如何从模板打开新文件?

SharePoint InfoPath 表单回发问题

sharepoint - 是否可以在一台服务器上运行两个 SharePoint 实例?