服务器端的计时器不符合客户机

时间:2014-03-31 22:03:42

标签: c# asp.net

每个人都有问题我有一个调用特定功能的Web表单,但每5分钟只能调用一次。我已经尝试过使用ajax定时器控件,但定时器在不同的机器上运行不同,我的意思是我在pc1上加载webform,在pc1上5分钟后会自动调用相同的函数但是如果我在pc2中加载webform,即使加载了一分钟在pc1,因此我会收到一个错误。简而言之,有一种方法可以在服务器上执行所有操作,而不是在单个客户端上执行(不使用数据库)。

1 个答案:

答案 0 :(得分:0)

查看Quartz.Net,这是一个调度程序。

您可以简单地安排一个作业每5分钟运行一次,并做任何您需要的事情。

这样的事情:

// define the job and tie it to our HelloJob class
IJobDetail job = JobBuilder.Create<HelloJob>()
    .WithIdentity("job1", "group1")
    .Build();

// Trigger the job to run now, and then repeat every 10 seconds
ITrigger trigger = TriggerBuilder.Create()
    .WithIdentity("trigger1", "group1")
    .StartNow()
    .WithSimpleSchedule(x => x
        .WithIntervalInSeconds(10)
        .RepeatForever())
    .Build();

// Tell quartz to schedule the job using our trigger
scheduler.ScheduleJob(job, trigger);

HelloJob:

public class HelloJob : IJob
{
    public void Execute(IJobExecutionContext context)
    {
        Console.WriteLine("Greetings from HelloJob!");
    }
}