如何在c#asp.net应用程序中每两个小时安排一个任务

时间:2018-04-26 06:20:33

标签: c# asp.net-mvc parallel-processing task

我有一个场景,我必须将我的本地数据库同步到我的在线数据库。我正在使用Microsoft同步框架。现在我想在我的web c#应用程序中执行此函数,以便每2小时执行一次(没有窗口调度程序)。我怎么能这样做?请给出一个代码示例,因为我是这个领域的新手。 我在Hari建议的应用程序中使用this code并且它正在运行。第一次代码执行正常但是当它到达下一个时间戳时,输出窗口中显示一条消息"线程0x22d4已经退出代码0(0x0)。"在没有工作的情况下,当时间到来时,它会一次又一次地显示相同的消息并且没有完成任何工作。我是线程新手,我想我错过了一些允许这个线程的设置。请任何人可以帮忙吗?

4 个答案:

答案 0 :(得分:0)

在这种情况下,您可以采取两种方法,

1。专用在线CRON工作(推荐):

您可以创建单独的CRON作业,这可以是Azure Web作业并相应地进行计划。您可以移动代码以将数据库同步到此CRON作业中而忘记它,它将每2小时执行一次并进行同步。

2。在ASP.NET Web应用程序中编写调度程序作业:

您可以使用.Net Framework编写一个简单的调度程序作业并相应地安排它并使用Global.asax注册它并让它每2小时运行一次。

我找到了一个链接,它使用代码示例演示了第二种方法:Click here for tutorial

<强>此致 哈

答案 1 :(得分:0)

当然,您需要某种调度机制和操作系统级服务来保持调度程序引擎的活动。我的建议是创建widows service,您可以使用Quartz计划程序引擎来安排任务。

答案 2 :(得分:0)

您可以使用Windows服务执行此操作并自行处理计划。

另一个选择是使用Hangfire(https://www.hangfire.io)在您的Web应用程序中运行重复后台任务。

答案 3 :(得分:-1)

我同意@@ Hari Govind。如果可以使用Microsoft azure,那么使用一些表达式创建WebJob,通过该表达式,您可以每两个小时运行一次任务。

相关问题