Как обмениваться данными между запланированными заданиями - PullRequest
1 голос
/ 11 октября 2011

Я пишу планировщик, который захватывает данные XML и вставляет их в БД MySQL - просто нет.Но проблема или логика, которую я пытаюсь найти, здесь. ПРИМЕЧАНИЕ: Я хочу выполнить это в среде Windows, в будущем это может быть настроено для других платформ.

  1. Планировщик должен запускаться каждые 5 минут.
  2. Этосценарий должен получить условие / конфигурацию для анализа и сбора полей данных из XML, и эти условия доступны из таблицы MySQL.
  3. В этой таблице также определяется задержка, в которой этот сценарий должен проверять разницу вПоля XML и задержка.
  4. Этот скрипт выполняет оба действия: один выполняется каждые 5 минут, чтобы собирать XML и проверять разницу в таблице (MySQL) для каждой указанной задержки.
  5. Этот сценарий затемчитает поля данных XML и анализирует их, а затем собирает только те поля данных, которые определены в приведенной выше таблице MySQL.
  6. Собранные данные будут вставлены в базу данных MySQL только при изменении состояния иэто состояние определяется из таблицы MySQL.

Отзывы / Предложения:

  1. Из-за задержки я не являюсьОбязательно, как мне сохранить конфигурацию в скрипте, которая будет совместно использоваться каждым расписанием.
  2. В любом случае нужно использовать переменную static в коде для хранения этих данных?Какими будут делиться ч / б разные вакансии?или разные расписания?
  3. В принципе, как мне это реализовать?Лучший подход с точки зрения производительности.

Спасибо за ваше время.

ОБНОВЛЕНИЕ:

Одним из предложений является использование JavaКод в качестве службы Windows (?) Мы могли бы иметь некоторые общие данные, разделяемые между различными заданиями?- имеет ли это смысл?

Ссылка: Java Service Wrapper

1 Ответ

0 голосов
/ 11 октября 2011

Concurensy - это ответ, попробуйте создать пул потоков или сервисы Executor и остановите определенные потоки на 5 минут, вы даже можете использовать синхронизацию, если несколько потоков будут работать с одним и тем же ресурсом.Помните, что не всегда чем больше потоков используется, тем быстрее вы закончите свою работу, например, 3 темы - 2 минуты 5 нитей - 6 минут

* Прочитайте учебник о потоках

* создайте простые темы с ожиданием 5min

* прочитайте несколько учебных пособий о пуле / синхронизации и совместном использовании ресурсов (часть скрипта) * тест, чтобы найти наиболее оптимальный способ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...