如何处理Sitecore网站的长时间运行操作

本文关键字:网站 长时间 运行 操作 Sitecore 何处理 处理 | 更新日期: 2023-09-27 18:12:01

我有一个Sitecore网站,我在网站根(DataImport.aspx)上创建了一个webform,它从Wordpress导入数据到Sitecore。在这个页面上,我编写了从Wordpress获取博客文章的代码,然后为每个帖子创建一个Sitecore Item &下载所有介质到/uploads文件夹

这个任务需要几分钟才能完成(大约10-15分钟),因为我们正在下载大量的媒体文件&我在浏览器上得到"请求超时"错误。

经过研究,我发现如果我们在web.config中更新executionTimeout设置它会工作得很好,但即使更新到6000秒后,我仍然得到相同的错误。

我想问的另一件事是,当我们做这些任务时,什么是最好的方法?比如,我应该创建一个后台进程还是创建一个web服务?

如何处理Sitecore网站的长时间运行操作

你应该使用Sitecore Job来处理你长时间运行的操作,它将作为后台任务运行,非ui阻塞,并允许你向用户提供反馈。您甚至可以将它们作为计划任务运行。

一些参考文章:

  • 使用Sitecore作业
  • 长运行进程选项
  • 使用Sitecore作业
  • Sitecore:执行长时间运行作业的理想方式

设置executionTimeout是正确的方法。如果设置的值足够高,进程将继续运行。你所看到的可能是你的浏览器放弃了,但是你的进程将继续在后台执行,直到被终止。如果您将日志记录作为作业的一部分,您将看到日志文件正在更新。