Выполнение задачи в качестве службы Windows вне диапазона iis - PullRequest
0 голосов
/ 09 мая 2011

У нас есть веб-приложение, в котором вызывается запрос на длительный или высокопроизводительный процесс.

Мы хотим создать службу Windows, чтобы разгрузить ее с серверов IIS. Мы установим эту услугу на нескольких компьютерах, чтобы сократить время ожидания этих заданий. Одна из идей, которую мы рассматриваем, заключается в сериализации объекта Job в Sql Server с JobType в качестве другого столбца.

Служба заданий будет требовать задания, обновив строку своим индикатором, что не позволит другим службам забрать ее. По завершении работы служба удаляет эту запись.

То, что я ищу, - это другие, возможно, лучшие идеи для организации очереди на работу.

1 Ответ

0 голосов
/ 09 мая 2011

Я бы сказал, что это отличный способ справиться с этой проблемой. Единственное, что я хотел бы добавить, это то, что, хотя я не знаю, что такое объект Job и как он создается, вы также можете разгрузить его. Вместо создания объекта и его сериализации в базу данных, просто сохраните необработанные данные в SQL. Позвольте Сервисам самим строить объект Job с нуля. Таким образом вы вырезаете сериализацию из микса. Однако, если это невозможно, я бы сказал, что ваше решение представляется наиболее жизнеспособным.

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

...