Служба C# рассчитана на получение данных

Мне нужно создать службу для установки на локальном ПК, которая будет периодически просматривать путь к файлу на моем сервере и копировать и вставлять его содержимое в место назначения на локальном ПК. Я хочу, чтобы он работал каждые шесть или двенадцать часов или около того. Мне также нужно запустить команду копирования с повышенными учетными данными. Мы не можем использовать запланированные задачи, потому что наша групповая политика отключает их из-за вируса. Ниже то, что у меня есть, это не так много.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceProcess;
using System.IO;
using System.Timers;

namespace PHSReportUpdater
{
  public class Timer1
  {
      private static System.Timers.Timer aTimer;

      public static void Main()
      {
          // Create a timer with an interval
          aTimer = new System.Timers.Timer(600000);

          // Hook up the Elapsed event for the timer
          aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);

          // Set the Interval
          aTimer.Interval = 21600000;
          aTimer.Enabled = true;
      }

      private static void OnTimedEvent(object source, ElapsedEventArgs e)
      {
          string reportSource;
          string reportDest;
          reportSource= @"V:\PrivateFolders\McKesson Surgery & Anesthesia\Crystal Reports\ProMedica Custom Reports\PHS PC\*.rpt";
          reportDest= @"C:\Program Files\McKesson\PHS\VER15.0\Reports";
          File.Copy(reportSource, reportDest);
      }
    }
}

1 ответ

Решение

"Отключает тех, кто из-за вируса?" - Это очень подозрительно. Похоже, проблема в другом приложении / расписании задач на компьютере, а не в самом планировщике задач.

Планировщик задач - это то, что нужно, нет причин не использовать его для периодических расписаний (если оно запускает ваше консольное приложение).

Если вам нужен сервис, который делает это, то не полагайтесь на таймер, используйте Quartz.NET, поскольку он имеет очень богатую поддержку для планирования задач / заданий и т. Д. И был создан специально для этой цели.

В этом конкретном случае SimpleTrigger экземпляр будет делать, просто дайте ему repeatInterval что вы хотите, чтобы ваша задача выполнялась.

Если вам нужно поддержать понятие "каждую пятницу в полдень" (которое вам нужно из-за таких вещей, как летнее время), тогда вы хотите CronTrigger,

После настройки триггера достаточно просто настроить расписание и задание для выполнения на основе срабатывания триггера.

Другие вопросы по тегам