крупномасштабная обработка событий по времени - PullRequest
0 голосов
/ 23 июня 2009

Еще один вопрос в крупномасштабном программировании:

У меня есть очередь заданий с отметками времени и именем целевого файла. (Для каждой временной метки может быть до 500 целевых файлов для обработки). Алгоритмы обработки одинаковы для всех 500 целевых файлов. Я хочу сделать:

  • Написать программу на Java
  • при достижении отметки времени запускайте все 500 заданий одновременно
  • Делайте это эффективно, с точки зрения эффективности вычислений, использования процессора и масштабируемости

Я знаю глупый способ сделать это, используя цикл while, проверяя, является ли текущее время меткой времени в очереди заданий .... Но есть ли другие альтернативы? Я также гуглю это онлайн, и есть также некоторые люди, говорящие, используя команду cron в Unix. (Да, моя целевая установка в Unix.)

Я новичок в этой области крупномасштабных вычислений, любые рекомендации или предложения приветствуются.

Ответы [ 2 ]

2 голосов
/ 23 июня 2009

Используйте пакетный планировщик, например Кварц , если вы хотите, чтобы ваша очередь заданий была постоянной.

Более легкая альтернатива - ScheduledThreadPoolExecutor из пакета java.util.concurrent, который можно создать с помощью класса фабрики Executors. Это позволяет регистрировать выполняемые задачи, которые будут выполняться в фиксированное время.

0 голосов
/ 23 июня 2009

Похоже, что вы хотите, это приоритетная очередь. По сути, вам нужно отсортировать свои элементы по отметке времени в очереди.

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