2010-03-23 2 views
0

Ужасно сформулированный вопрос ... Я знаю.Есть ли способ определить временной интервал для настройки процесса?

Я работаю над приложением, которое обрабатывает данные за предыдущий день. Проблема в том, что я знаю, что клиент будет в конечном итоге просить об этом каждый час или какой-то другой произвольный временной интервал. Я знаю, что языки, такие как Java или SQL, имеют маски для определения дат. Ну как насчет способа определить временной интервал?

Позвольте мне спросить об этом таким образом. Если кто-то попросил вас создать настраиваемую часть программного обеспечения, как бы вы разрешили пользователю указывать временные интервалы?

UPDATE

Что я ищу это текстовое представление. Представьте, что somethign будет помещен в конфигурационный файл.

ответ

1

Вот как настроен хроны API Google App Engine, это немного более удобным, чем cron:

http://code.google.com/appengine/docs/python/config/cron.html#The_Schedule_Format

Python (? И Java) источник для его реализации должны быть доступны в SDK. Не смотрели, как легко было бы извлечь, но он должен хотя бы дать некоторые идеи.

Я думаю, что было бы возможно добавить различные вещи в формат по мере необходимости - он достаточно структурирован, чтобы быть расширяемым.Например, в настоящее время отсутствует способность говорить «каждый час через 4 минуты», что является обычным явлением в UNIX cron, но на самом деле не имеет отношения к GAE, потому что хотя, возможно, двигатель может определить, какие минуты заняты, а какие нет, и баланс нагрузки, пользователь, конечно, не может.

Очевидно, что основная слабость предложить что-то, что выглядит естественным языком для среднего пользователя, заключается в том, что они подумают, что ваш код психический, и ожидайте, что он также поймет такие вещи, как «каждую среду, кроме недели после Пасхи», , или «всякий раз, когда меняются часы» ;-)

1

Я не уверен, правильно ли я понял ваш вопрос. Вы запрашиваете способ ввода временных интервалов?

Я не знаю вашей среды, но большинство языковых фреймворков предлагают некоторые более или менее сложные компоненты графического интерфейса. Что-то вроде управления календарем может быть тем, что вы ищете?

Редактировать: Ах, командная строка (или файл конфигурации).

  • Можете ли вы разобрать XML-файл? В этом случае вы можете просто сериализовать промежуток времени (большинство языков имеют такой класс). Использование может редактировать XML-файл, как правило, просто заменяя, скажем, значение части <minutes>. Дезаминирование этого XML-файла для получения Timespan снова легко.

  • Если вы предпочитаете использовать обычный текст или ввод в командной строке, это немного менее просто. Тем не менее, многие языки поддерживают какой-то Timespan.Parse (строковый текст, строковый формат). Вы должны посмотреть, присутствует ли эта концепция в вашей среде.

  • Многие среды предлагают какой-то sscanf(), который анализирует входную строку. Иногда есть формат времени.

  • Если предыдущие идеи не предоставляют решения, вы можете попытаться проанализировать дату с помощью регулярного выражения. В этой теме должно быть много ресурсов на этом сайте, а также в Интернете.

  • Если вам не нравится регулярное выражение, разделите строку ввода в соответствии с вашими собственными правилами форматирования. Тем не менее, это своего рода уродливое решение.

  • Если вы не хотите, чтобы каждый пользователь вводил строки вручную, используйте Random.NextInt (1000) и надейтесь, что никто не заметит. 0 :-)

+0

Хороший вопрос ... Я был не так уж ясен. Я ищу некоторые текстовые средства определения интервалов. То, что затем может быть проанализировано и интерпретировано как определяющее интервал. – gshauger

+0

@Downvoter: Мне бы очень хотелось знать, почему этот пост не помог. Просто напишите мне, и я посмотрю, смогу ли я ее улучшить. – mafu

+0

Это не помогло, потому что ни в коем случае не предлагалось текстовый метод для настройки планировщика. Сообщение, которое я назвал ответом на вопрос, указывало мне в сторону выражений Cron, которые ТОЧНО соответствуют тому, что мне нужно. Фактически, я закончил использование выражений cron с небольшой настройкой в ​​моей последней реализации. – gshauger

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