2013-03-28 2 views
1

У меня есть запланированные задачи, которые слишком тяжелы, поэтому мой вопрос: слишком тяжелые запланированные задачи могут упасть на сервер coldfusion? я имею в виду, иногда мои запланированные задачи превышали предельное время цикла, так или иначе я ищу другой способ сделать то же самое, но не слишком тяжелый.Планировщик, он слишком тяжелый?

+4

Возможно, если вы покажете нам код из «тяжелых» запланированных задач, мы можем предложить улучшения? – duncan

+0

Ответ на ваш конкретный вопрос - «да». Любая задача может сбить сервер, если он потребляет слишком много ресурсов. Неважно, как это называется. –

ответ

3

Ну, запланированная задача - это просто автоматический вызов обычного запроса на страницу CF. Это означает, что если вручную вывести URL-адрес запланированной задачи в окне браузера, не так ли время?

Помните, что запланированное задание вызывается и запускается сервером, что означает, что вы можете иметь разные значения сеанса, CGI, запроса и формы в отличие от фактического пользователя. Тем не менее, вы можете использовать атрибут requestTimeout для CFSETTING tag, чтобы продлить, как долго страница должна будет выполнять задачи до истечения времени. Атрибут requestTimeout принимает значение, которое представляет собой количество секунд, после которого, если запрос не возвращается с сервера, CF считает, что страница не отвечает.

Однако это будет зависеть от того, что делает ваша запланированная задача. Существуют всевозможные способы использования кода для разбивки его на составные части для более быстрой обработки. Возможно, выяснение того, что делает цикл (и действительно ли это нужно делать все, что он делает), - это хорошее место для начала.

0

Есть несколько вещей, которые следует учитывать.

Во-первых, для выполнения вашей задачи требуется некоторое время, и в настоящее время выполняется время. Там некоторые вещи, чтобы исследовать здесь:

  1. хорошо не расследование, но вы можете установить requesttimeout для этого запроса через <cfsetting> согласно предложению @ coldfusiondevshop в.
  2. Вы можете проверить свой код, чтобы узнать, можно ли его кодировать по-разному, чтобы не занять столько времени. Из-за характера работы, которая обычно делается как задача, это может быть невозможно.
  3. В зависимости от вашей версии ColdFusion (pls всегда отмечают ваши вопросы с версией CF, а также просто «ColdFusion»), вы можете использовать расширенное планирование CF10, чтобы разбить задачи на более мелкие куски и объединить их вместе, тем самым части суммы менее вероятны тайм-аут. Это тоже не всегда возможно, но это соображение.

Другая вещь, о которой стоит подумать, заключается в том, стоит ли иметь отдельный экземпляр CF для ваших задач. Так же как и время вашей задачи, это также может замедлить обработку для всех остальных, пока это работает. Вы проверили это? Для одной задачи это, вероятно, слишком велико, но хорошо иметь в виду, что задачам не требуется , необходимо, чтобы выполнялся теми же экземплярами CF, что и остальная часть сайта, и действительно, есть убедительный случай, чтобы не сделайте это, если есть много задач, которые будут напрягать ресурсы экземпляра CF.

Подводя итог: увеличьте время ожидания через <cfsetting>, затем проверите свой код, чтобы узнать, можете ли вы улучшить его производительность. Другие вещи, которые я говорю, - это просто «бонусные баллы».

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