Я пытаюсь получить данные из баз данных MSSQL и PostrgeSQL, чтобы регулярно заполнять их в базу данных MySQL (каждый час).C# Таймер для заполнения базы данных
Основываясь на проведенном мной исследовании, я хотел бы использовать таймер C# для этого. Однако я не совсем понимаю, как работает таймер. Я объявляю его в Page_Load, устанавливаю обработчик прошедшего события и вызываю метод из обработчика события.
protected void Page_Load(object sender, EventArgs e)
{
int duration = 100 * 60 * 5; //milliseconds * seconds * minutes
// Create a timer with a two second interval.
System.Timers.Timer timer = new System.Timers.Timer(duration);
// Hook up the Elapsed event for the timer.
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Enabled = true;
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
cf();
}
Это работает, но ...
Проблема заключается в том, что таким образом таймер инициализируемого каждый раз, когда страница загружена. Как создать таймер, который инициализируется только один раз и работает с этого момента без повторной инициализации. Кроме того, как мне обрабатывать ситуацию, если таймер или метод терпят неудачу - выбрасывает исключение или сервер идет вниз? Как перезапустить таймер?
Любое понимание поможет! Заранее спасибо!
Вам нужно сделать это в веб-проекте, кажется, неправильно делать такую работу на веб-странице? Почему бы вам не создать приложение-приложение или консольное приложение? –
Это веб-приложение. –