簡體   English   中英

使用QUARTZ.NET啟動過程

[英]Start process with QUARTZ.NET

這是我的.NET控制台應用程序program.cs類中的方法

public static void Run()
    {

        var isRunning = false;
        IServiceCollection services = new ServiceCollection();
        Startup startup = new Startup();
        var serviceProvider = startup.ConfigureServices(services);
        IWindsorContainer _container = 
        DateTime thisDay = DateTime.Today;
        while (true)
        {
            if (!isRunning)
            {
                isRunning = true;
                var configuration = _container.Resolve<IConfigurationRoot>();
                var _process = _container.Resolve<Process.Process>();
                var cron = (configuration[Enums.ExecutionTime]);

                if (thisDay == DateTime.Now)
                {
                    try
                    {

                        _process.MainProcess();

                    }
                    catch (Exception ex)
                    {
                    }
                    finally
                    {
                        isRunning = false;
                        Thread.Sleep(secondsForSleep);
                        _container.Release(_process);
                    }
                }
            }
        }
    }

我想使用quartz.net來啟動_process.MainProcess()但是我能找到的所有示例都是關於啟動Jobs ,有人知道它是否支持啟動過程,或者有解決方法嗎?

您只需實現IJob接口並讓作業運行該過程:

[DisallowConcurrentExecution]
public class MyProcessJob : IJob
{     
    private readonly Process _process;

    public MyProcessJob(Process process)
    {
        _process = process;
    }

    public void Execute(IJobExecutionContext context)
    {
        _process.MainProcess();
    }
}

Quartz.NET快速入門指南中很好地解釋了作業的創建和調度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM