Как определить и изящно убить зависшие процессы службы Gp?

11

Я опубликовал инструмент gp как асинхронный gp-сервис без пула .

Когда зависает инструмент gp, я бы хотел, чтобы пользователь мог его убить, не затрагивая другие сервисы. Если я поставлю веб-сервис на SOM, который убивает процесс на основе идентификатора, повредит ли он другим сервисам?

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

Есть ли способ для веб-службы, работающей на машине SOM, завершить процесс на (другой) машине SOC?

Первое, что делает инструмент gp, это записывает hostID и processID в файл журнала, но я бы хотел, чтобы система работала для любой службы gp, а не только для тех, которые регистрируют эту информацию.

Можно ли сделать запрос к серверу gp, который возвращает hostID & processID для произвольного jobID?

Обновление: я решил сначала внедрить метод отмены заданий GP, а затем применять стратегию уничтожения процесса только в том случае, если отмена окажется неэффективной. Поскольку REST API в настоящее время не имеет метода Cancel , я буду делать это через SOAP. Мне также показали, как регистрировать идентификаторы процессов , поэтому мне не нужно полагаться на собственную регистрацию.

Кирк Куйкендалл
источник

Ответы:

2

Я подумал, что попробую, и я обнаружил, что вам может понадобиться что-то построить

http://help.arcgis.com/en/sdk/10.0/serveradf_net/conceptualhelp/index.html#/GeoprocessingResourceManager_control/000200000005000000/

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

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

Веселись, CDB

CDBrown
источник