3

我有一个简单的问题要问.. 有谁知道如何在 ASP.NET MVC 4 中创建重复调度程序。我正在尝试构建的是一个灌溉系统,我可以为我的系统设置星期几和时间每周激活。因此,用户将选择星期几以及系统应该运行的时间和持续时间。如何保持触发系统开启的运行时钟?.. 我应该为我的属性使用下拉列表吗?虽然很好,但我并不是要你为我写一个完整的应用程序.. 一个正确方向的简单点会很有帮助.. 在网上搜索答案的问题是我真的不知道要搜索什么。

先感谢您..

4

4 回答 4

9

我们正是为此使用Quartz.Net 。它是 Quartz for Java 的一个端口。

它非常强大,很容易定义新的工作(应该做什么)和时间表(什么时候做)。新版本支持 Cron 调度程序,该调度程序支持类似 linux cron 的配置 - 因此在每个星期一、每个月的 5 号或给定日期的每 5 分钟开始工作非常容易。我认为计划任务很难超越这种灵活性。

我们正在使用数据库配置和服务器上的服务(这是“激活事物的运行时钟”)。此外,Web 服务用于配置 Quartz 调度程序并通过数据库更改正在运行的服务(这是由 Quartz 完成的.Net 为您服务)。所有这些东西都得到了很好的支持。

从 cron 触发器开始的一些技巧:

首先是来自http://quartznet.sourceforge.net/tutorial/lesson_1.html的教程。第 1 - 3 课向您展示了基本的构建块。第 9 课向您展示了 ADO 作业存储(用于数据库持久性)。

使用 cron 触发器会像这样工作

ITrigger trigger = TriggerBuilder.Create().WithIdentity(id).StartNow().WithCronSchedule(cronstring).Build();
scheduler.ScheduleJob(job, trigger);

为了让您了解 cron 触发器的可能性,本指南非常方便

于 2013-09-19T05:46:33.560 回答
3

朋友,您可以借助以下代码创建调度程序

void Application_Start(object sender, EventArgs e)
{
    System.Threading.Timer _timer = new System.Threading.Timer(
                                           new TimerCallback(GetProducts));

    _timer.Change(0, 51000); // here you can change the start time  interval
}


static void GetProducts(Object state)
{
    // do something
}
于 2013-09-19T06:01:17.853 回答
2

要在独立的日期时间服务器上制定计划任务,并获取有关所有任务的详细报告,您可以使用触发器作为计划服务。使用标签暂停、恢复或删除任务集、归档和存储所有调用结果(如可能的错误)等功能将真正帮助独立于编程语言的开发人员。

.Net 库也可用:

//Create
ATrigger.Client.doCreate(TimeQuantity.Day(), "1", "http://www.example.com/myTask?something", tags);

免责声明:我是 ATrigger 建设者之一。这是一个完全免费的软件,不是商业目的。

于 2013-09-20T14:10:38.913 回答