2011-01-14 2 views
1

У меня есть вопрос:Расписание задач Задайте вопрос

Предположим, вы получили некоторые данные, которые должны произойти в определенный момент времени в будущем. Вы получаете сообщение о том, что моя задача должна состояться в 1 час, а другая - в 1,5 часа. Информация собирается на вашем сервере. В каком языке программирования или даже как это решить? Таким образом, задача a будет выполнена за 1 час, задача B - через 1,5 часа. Я прочитал кое-что о java scheduler, но я еще не уверен, что это правильный путь.

Что такое идеи ура?

Приветствия

ответ

1

хрон установлен на большинстве веб-серверов Unix - вы можете использовать его для назначения задач, чтобы выполнить позже.

+0

Вы можете определить их через любой язык программирования? – gabac

+0

Все, что будет работать на вашем сервере. –

+0

Да, вы можете; 'man crontab' и посмотреть, как вы отправляете новые задания. Se также linux/bsd 'at'; легче отправлять одноразовые задания на 'at'. – 9000

1

Если вы ищете программный доступ, посмотрите на Quartz - java scheduler. У них также есть хороший учебник resource.

1

Если это длительный процесс, вы можете использовать ScheduledExecutorService в java для достижения этого. Ясно, что если ваш процесс выйдет, задача будет потеряна.

cron или quartz также будут работать как более постоянные планировщики. каждый из них имеет свои собственные морщины.

1

Если вы по какой-то причине решили реализовать такую ​​систему самостоятельно, вот идея.

  • Имейте список, в котором вы выполняете свои задания, заказанные по времени.
  • Создайте процесс демона, который просыпается большую часть времени, и просыпается, например. каждую минуту или даже нерегулярно, используя sleep(). Когда демон просыпается, он принимает задания из очереди; если пришло время выполнения задачи, она запускает эту задачу в отдельном процессе (или потоке) и удаляет ее из очереди. Начав все должные задачи, он снова заснул.
  • Разработать интерфейс для добавления новых задач в очередь.
Смежные вопросы