在Web服务上的特定时间每天运行计划的进程

时间:2015-08-13 15:18:29

标签: c# asp.net-mvc scheduled-tasks

我一直在构建一个Web服务,以便在我公司的SalesForce和Zendesk之间同步数据。在这样做的过程中,我已经构建了几个优化来大幅缩短执行时间,例如缓存从每个服务检索的一些较大的数据集。

然而,这是有代价的。在缓存数据时,通过SalesForce和Zendesk的API下载所有内容可能需要3-5分钟。

为了解决这个问题,我想有一个后台工作人员每天午夜自动缓存所有必需的数据。但是,我不确定这样做的最佳方法是什么。

构建一个仅具有工作线程的类就足够了,该工作线程每隔几分钟检查它是否在午夜之后,并在从Global.asax启动时激活它。或者是否存在某种调度程序?

修改

在使用类似的东西之间似乎有一些分歧:

FluentSchedulerQuartz.net以容纳我的应用程序中的所有内容。

使用类似Windows任务调度程序和编写辅助应用程序来调用我的应用程序的功能来执行此操作。似乎使用第三方库会更加简单,但使用Windows任务计划程序有任何固有的好处。

2 个答案:

答案 0 :(得分:1)

我认为您希望将数据缓存逻辑添加到“控制台应用程序”类型的项目中。您将能够将其部署到您的服务器并使用Windows“任务计划程序”将其作为计划任务运行。如果您没有使用此项目类型或计划任务之前存在堆栈溢出问题,这些问题应该有助于herehereand here。您可以根据需要添加命令行参数,并且应该查看添加互斥锁,以便一次只运行一个代码实例。

答案 1 :(得分:0)

添加一个知道如何操作的端点,并使用Windows任务调度程序调用该新的缓存端点。