Quartz无法在真实服务器中运行

时间:2016-06-28 09:42:57

标签: c# asp.net quartz-scheduler quartz.net

我可以访问db和ftp到我的实时服务器。我想安排一项任务。我在Quartz.net(ASP.Net C#)做了一个时间表,它在本地服务器上工作正常,当我把它上传到服务器时,我没有把它放到外面。我在我的任务的顶部和底部添加了一个文件写入命令,这些文件正在写入目标。这是我写的代码

public partial class saaiTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        TestClass t = new TestClass();
        t.method("start");

        ISchedulerFactory factory = new StdSchedulerFactory();
        IScheduler scheduler = factory.GetScheduler();

        IJobDetail job = JobBuilder.Create<TestClass>()
            .WithIdentity("name", "group")
            .Build();

        ITrigger triggerCron = TriggerBuilder.Create()
            .WithCronSchedule("0 0/1 * 1/1 * ? *")
            .StartNow()
            .Build();

        scheduler.ScheduleJob(job, triggerCron);
        scheduler.Start();

        Thread.Sleep(TimeSpan.FromMinutes(10));
        scheduler.Shutdown();

        t.method("stop");
    }
}

public class TestClass : IJob
{
    public void Execute(IJobExecutionContext context)
    {
        this.method("job");
    }

    public void method(string filename)
    {
        StreamWriter file2 = new StreamWriter(HostingEnvironment.MapPath("~\\test\\" + filename + ".txt"), true);
        file2.WriteLine("Write Time : " + DateTime.Now);
        file2.Close();
    }
}

我通过运行此页面启动了计划,我尝试将其添加到Global.asax。如何在我的实时服务器中启动调度程序,是否可以从服务器停止调度,如果有,解决方案是什么?

1 个答案:

答案 0 :(得分:2)

我希望此链接可以为您提供所需内容Simulate a Windows Service using ASP.NET to run scheduled jobs

Quartz使用Windows服务,使用Hangfire而不需要Windows服务。这个Hangfire, a must for adding background tasks in ASP.NET链接可以帮助您入门