Служба windows С#

369
10 августа 2017, 20:51

Есть приложение написанное на C#, все параметры приложения прописаны в config.ini. Хочу это приложение переделать в службу что бы исключить человеческий фактор. Служба будет крутится на сервере 24/7. Мне необходимо что бы она отрабатывала каждый день к примеру в 15:00. Я самоучка и много не знаю в C#. Подскажите, возможно ли оставить что бы служба получала параметры из config.ini или все параметры придется зашивать в код? Как реализовать отработку каждый день в 15:00, в while и проверку на текущее время или есть что то более удобное или правильней?

Answer 1

Задачу можно решить с использованием одного из шедулера задач для .net — таких как Quartz или HangFire

Пример реализации запуска задания каждый день в 15:00 с помощью Quartz .net:

public class MyJob : Quartz.IJob
{
    public void CreateJob()
    {
        IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
        scheduler.Start();
        IJobDetail job = JobBuilder.Create<MyJob>().Build();
        ITrigger trigger = TriggerBuilder.Create()
            .WithDailyTimeIntervalSchedule
            (s =>
                s.WithIntervalInHours(24) 
                    .OnEveryDay()
                    .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(15, 0))
            )
            .Build();
        scheduler.ScheduleJob(job, trigger);
    }
    public void Execute(IJobExecutionContext context)
    {
        // Выполнение основной задачи
    }
}

Постановка задачи:

  MyJob job = new MyJob();
  job.CreateJob();
READ ALSO
Лаги при использовании requestAnimationFrame

Лаги при использовании requestAnimationFrame

Почему при использовании в коде (пример) конструкции

340
Заменить буквы на цифры в js

Заменить буквы на цифры в js

Мне надо поменять все буквы в строке по шаблону из массиваНачал, но не смог продолжить

932
Сделать код синхронным

Сделать код синхронным

Помогите сделать код синхронным

353