2014-10-19 4 views
0

У меня есть локальная и удаленная транзакция. По какой-то причине я хочу синхронизировать локальный с удаленным, скажем, каждые 5 минут. Должен ли я использовать службу, которая выполняет синхронизацию с использованием таймера или планировать задачу на сервере Windows?Задача планирования и обслуживания

ответ

2

Раньше я всегда делал службу Windows для выполнения заданий по времени. Но несколько лет назад я переключился на подход планировщика заданий, без сожалений.

Вот преимущества, которые я нашел с помощью подхода Task Scheduler:

  1. Меньше кода для записи (в основном потому, что у вас нет накладных расходов на Timer)

  2. Легче отладки (просто нажмите F5 и запустите его, так как это нормальный EXE)

  3. Легче запускать специальное выполнение (в случае, если вы хотите проверить результат прямо сейчас, а не ждать до следующего тайм-аута n)

P.S. Для справок в будущем этот вопрос должен быть действительно задан в Programmers Stack Exchange, так как речь идет о дизайне, в отличие от проблемы с существующим кодом.

1

Если вы используете MS SQL Server, а локальный (исходный) сервер имеет хотя бы стандартную версию или выше, вы должны подумать об использовании репликации (SQL Server Express не может служить издателем или распространителем). Если на локальном сервере есть версия Express Edition, но на удаленном сервере стандартная версия или выше, вы должны настроить PULL-подписку на удаленную сторону, чтобы извлекать данные с сервера Express.

Если репликация не является случаем, я бы предложил использовать сервис (работающий с учетной записью SYSTEM) с использованием таймера, потому что вам нужно указать, какая учетная запись Windows будет использоваться для запуска задачи для запланированной задачи. Когда пароль для учетной записи изменится, ваши задачи не будут выполняться и даже хуже, вы не получите никакой информации об этом.

Если ваша частота была длительной (один раз в неделю или один раз в день), то использование службы следует рассматривать как расходование системных ресурсов, но я думаю, что это приемлемо в течение 5 минут.

0

Используете ли вы Windows для ОС? если да, я бы написал файл сценария для синхронизации базы данных и поместил скрипт в планировщик заданий.

Для ubuntu запланированная задача будет моим выбором ...

Смежные вопросы