Обработка в фоновом и приоритетном режимах
Вы можете выбрать, в каком режиме будет произведен запуск инструмента (фоновом или приоритетном). Выберите Геообработка (Geoprocessing) > Опции Геообработки (Geoprocessing Options) на панели Стандартные (Standard).
На панели Обработка в фоновом режиме (Background processing) определяется режим запуска инструмента — фоновый или приоритетный.
- Если опция Включить (Enable) будет включена, то инструменты будут запущены в фоновом режиме, и вы сможете продолжить работу в ArcMap (или других приложениях ArcGIS, например, ArcGlobe) во время работы инструмента. Вы увидите индикатор выполнения внизу вашего документа, который показывает имя текущего работающего инструмента. Когда инструмент закончит работу, в районе системных значков будет отображено сообщение. Вы можете контролировать, как долго это сообщение будет отображаться с помощью бегунка Уведомление (Notification); вы также можете отключить показ этого сообщения, передвинув ползунок сильно влево.
- Если опция Включить (Enable) не будет включена, то запуск инструментов будет производиться в приоритетном режиме. Когда инструменты работают в приоритетном режиме, вам будет нужно дождаться завершения их работы, прежде чем вы сможете продолжить использовать приложение.
Обработка в фоновом режиме
При выполнении инструмента с помощью его диалогового окна или из окна Python вы увидите индикатор работы инструмента, как показано ниже.
Вы можете также проследить за ходом работы инструмента из окна Результаты (Results). Окно Результаты (Results) может быть открыто следующими способами:
- Откройте окно Результаты (Results), выбрав Геообработка (Geoprocessing) > Результаты (Results).
- Щелкните строку состояния (показано выше) в нижней части окна ArcMap, чтобы открыть окно Результаты (Results) для выполняющегося в настоящий момент инструмента.
- Щелкните всплывающее сообщение о результате процесса геообработки, чтобы открыть окно Результаты (Results) непосредственно с этими сообщениями о ходе выполнения инструмента.
Пока один инструмент будет работать в фоновом режиме, вы можете запустить другие инструменты, используя их диалоговые окна. Однако только один инструмент сможет работать в фоновом режиме; все другие инструменты будут помещены в очередь (ожидать запуска). Как только запущенный инструмент завершит свою работу, произойдет запуск следующего инструмента в очереди.
Вы не сможете произвести запуск сеанса редактирования, если был произведен запуск инструментов в фоновом режиме. Если инструменты будут запущены в фоновом режиме, то появится сообщение, в котором будет указано, что сеанс редактирования не может быть запущен. Вам нужно позволить всем инструментам геообработки, работающим в фоновом режиме, закончить свою работу (или остановить их), чтобы вы могли начать сеанс редактирования.
При обработке в фоновом режиме, когда вы производите запуск инструмента в окне Python, окно Python также не может быть использовано до тех пор, пока инструмент не закончит свою работу.
Пользовательские модели и скриптовые инструменты запускаются в приоритетном режиме по умолчанию
Ваши пользовательские модели и скриптовые инструменты будут запущены в приоритетном режиме по умолчанию, даже если вы включили режим фоновой обработки. Чтобы ваши пользовательские инструменты могли быть запущены в фоновом режиме, вам будет нужно выполнить два действия:
- Убедитесь в том, что инструмент был создан в соответствии с требованиями документа Запуск пользовательских инструментов (модели/скрипты) в фоновом режиме.
- Щелкните правой кнопкой мыши вашу модель или скрипт и выберите Свойства (Properties). На вкладке Общие (General) отмените опцию Всегда выполнять в фоновом режиме (Always run in foreground).
Используемые в работе инструмента слои ArcMap будут заблокированы при запуске инструмента в фоновом режиме
Если выходными данными инструмента геообработки является слой на карте (например, инструмент Выбрать в слое по атрибутам (Select Layer By Attribute), либо инструмент изменяет входные данные (например, инструмент Добавить поле (Add Field) либо любой другой инструмент в наборе инструментов Редактирование (Editing)), слой будет заблокирован при использовании инструмента. В таблице содержания на значке слоя появится замок, чтобы показать, что сейчас производится геообработка данного слоя. Любое обновление карты, пока слой будет заблокирован, не приведет к перерисовке слоя. Как только работа инструмента будет завершена, карта будет обновлена, и вы сможете возобновить работу со слоем.
Отмена выполнения инструмента, работающего в фоновом режиме
Чтобы отменить выполнение инструмента, запущенного в фоновом режиме, откройте окно Результаты (Results) и найдите тот инструмент, выполнение которого производится (рядом с ним будет отображен значок песочных часов или индикатора работы). Щелкните правой кнопкой мыши на результате и выберите Отмена (Cancel). Таким же образом вы можете отменить запуск тех инструментов, которые ожидают своего запуска в очереди.
Когда инструмент получит команду на остановку работы, он попробует удалить созданные временные данные и отобразить сообщение с предупреждением. В зависимости от типа работы, необходимой для очистки временных данных, может потребоваться некоторое время.
Системные инструменты могут работать в приоритетном режиме, даже когда включена опция обработки в фоновом режиме
В некоторых случаях производится запуск инструментов в приоритетном режиме, даже если была включена опция обработки в фоновом режиме:
- Если вы редактируете данные, то все инструменты геообработки будут запущены в приоритетном режиме. Даже если данные, которые вы редактируете, не используются инструментами геообработки, ArcGIS все равно произведет запуск всех инструментов в приоритетном режиме. Это необходимо для того, чтобы предотвратить появление ситуаций, когда инструмент, работая в фоновом режиме, произведет изменение данных, которые вы редактируете.
- Если вы откроете окно ModelBuilder и произведете запуск модели, все процессы в модели будут запущены в режиме приоритетной обработки. Работа в ModelBuilder похожа на работу в сессии редактирования. Все процессы, запуск которых производится в фоновом режиме, препятствуют возникновению ситуаций, когда параллельное изменение данных может привести к нежелательным результатам.
- Некоторые системные инструменты, например, Обновить базу геоданных (Upgrade Geodatabase) всегда запускаются в режиме приоритетной обработки из-за необходимости блокировки данных и обеспечения их целостности. Другие системные инструменты могут быть запущены в режиме приоритетной обработки, если им будет нужно произвести доступ к текущему документу карты.
Выход из приложения при наличии работающих в фоновом режиме или ожидающих запуска инструментов
Вы можете выйти из ArcMap (или ArcGlobe или ArcScene) и сохранить документ карты в то время, когда будут работать (или ожидать запуска) инструменты. Если вы выйдете из приложения, то все запущенные инструменты будут остановлены. Статус запущенных или приостановленных инструментов станет Не выполняется (Not Run) в окне Результаты (Results). У этих элементов будут прозрачные значки инструментов, и вы сможете запустить их, щелкнув правой кнопкой мыши результат и выбрав Запустить повторно (Re Run).
Инструмент, который запущен или стоит в очереди, будет немедленно остановлен, когда вы закроете ArcCatalog. Результат запуска этого инструмента будет перемещен в секцию Не выполняется (Not Run) окна Результаты (Results). Этот инструмент может быть запущен повторно, точно так же, как указано выше.
Обработка в приоритетном режиме
Когда обработка в фоновом режиме отключена, инструменты выполняются в приоритетном режиме, и вам нужно дождаться завершения их работы, чтобы снова продолжить работу с приложением. Как только работа инструмента началась, появится диалоговое окно со индикатором выполнения, как показано ниже. Нажмите кнопку Подробнее (Details), чтобы просмотреть сообщения о работе инструмента.
Сообщения с предупреждениями в окне работы инструмента будут зеленого цвета; перед ними будет указано WARNING и численный код. Предупреждение означает, что выходные данные могут отличаться от того, что вы ожидаете. На показанном ниже рисунке инструмент создал пустой выходной набор данных. Численный код представляет собой гиперссылку, по щелчку по которой вы можете просмотреть полное описание и возможные решения проблемы.
Сообщения об ошибках в окне работы инструмента будут красного цвета; перед ними будет указано ERROR и численный код.
Как только инструмент запустится, и вы закроете диалоговое окно с индикатором выполнения, вы сможете просмотреть все результаты работы инструмента в окне Результаты (Results).
Отмена инструмента, запущенного в приоритетном режиме
В процессе работы инструмента вы можете отменить выполнение инструмента, щелкнув на кнопке Отмена (Cancel) в диалоговом окне прогресса.
Когда инструмент получит команду на остановку работы, он попробует удалить созданные временные данные и отобразить сообщение с предупреждением. В зависимости от типа работы, необходимой для очистки временных данных, может потребоваться некоторое время.
О производительности
Вы можете думать о фоновой обработке как о другой сессии ArcMap, запущенной на другом компьютере, но без открытого окна ArcMap. Этот дополнительный процесс (сеанс) будет запущен тогда, когда инструмент будет запущен в фоновом процессе в первый раз и будет сохранен в памяти до тех пор, пока вы не закроете сессию ArcMap. Вы можете заметить короткую задержку при первом запуске инструмента, когда происходит запуск фонового режима.
При работе с большими базами данных некоторые инструменты геообработки, особенно использующие процесс разбиения на листы, используют все возможные ресурсы компьютера (памяти и ЦПУ). Если инструмент не в состоянии работать в фоновом режиме из-за недостатка памяти (ошибка 000426: Out Of Memory (Недостаточно памяти) либо ошибка 999998: Unexpected Error (Непредвиденная ошибка), можно выполнить следующее:
- Найти и закрыть неважные, но требующие большого объема памяти приложения.
- Отключите обработку в фоновом режиме в диалоговом окне Опции геообработки (Geoprocessing Options) (Геообработка (Geoprocessing) > Опции геообработки (Geoprocessing Options)). Это остановит работу процесса фоновой обработки и освободит дополнительные ресурсы.
- Перезапустите инструмент.
Следуя указанной выше процедуре, вы сможете обойтись без запуска процесса фоновой обработки; дополнительный процесс фоновой обработки не будет запущен, и те ресурсы, которые он использовал, теперь будут доступны для инструмента. Во время работы инструмента избегайте запуска приложений, потребляющих большие ресурсы памяти.
Процесс обработки в фоновом режиме на самом деле производит запуск двух процессов. Вы можете увидеть эти два процесса из приложения Диспетчер задач Windows (Windows Task Manager). На закладке Процессы (Processes) вы увидите два процесса RuntimeLocalServer.exe, отвечающие за фоновую обработку. Эти два процесса нельзя завершать из диспетчера задач, поскольку это может привести к сбою в работе приложения.