Skip To Content

Обновление текущих данных о дорожном движении

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

Вам необходимо настроить скрипт Python для запуска каждые две минуты с помощью crontab. Эта встроенная утилита командной строки позволяет пользователям планировать автоматическое выполнение задач с заданными интервалами. Скрипт Python, настроенный для запуска через crontab, требует следующих предварительных условий:

  • Вы должны настроить crontab для пользователя операционной системы, указанного в качестве учетной записи ArcGIS Server.
  • Для работы скрипта Python требуется Python версии 3.9 или более новой. Важно использовать версию Python, которая не входит в комплект поставки ArcGIS Server; вместо этого вы должны использовать версию Python, которая изначально доступна в вашей операционной системе.
  • В среде Python должен быть установлен модуль requests.

Обновляйте текущие данные о дорожном движении каждые две минуты, запустив скрипт Python через crontab. В приведенном примере подразумевается, что ArcGIS Server установлен в /arcgis/server.

(crontab -l; echo "*/2 * * * * /usr/bin/python3 /arcgis/server/framework/runtime/ArcGIS/Resources/ArcToolBox/Services/routingservices/update_traffic_cache_scheduler.py >/dev/null 2>&1") | crontab -
Примечание:

Описанные выше действия должны быть выполнены на каждом компьютере на сайте ArcGIS Server из нескольких компьютеров.

Скрипт Python генерирует файл журнала с именем update_traffic_cache_scheduler.log, который хранится в папке по умолчанию, куда ArcGIS Server записывает свои журналы, такие как <ArcGIS Server installation directory>/arcgis/server/usr/logs. Вы можете проверить этот файл журнала, чтобы определить, возникли ли какие-либо ошибки во время выполнения скрипта.

Проверка статуса данных о дорожном движении в реальном времени

После того как вы настроили регулярное обновление данных о дорожном движении в режиме реального времени, вы можете проверить, успешно ли обновляются данные, запустив инструмент GetLiveTrafficStatus в сервисе геообработки NetworkAnalysisUtilities. Этот сервис доступен в той же папке, где были опубликованы другие сервисы маршрутизации. Например, если сервисы маршрутизации были опубликованы в папке сервиса с именем Routing, URL-адрес инструмента GetLiveTrafficStatus будет https://machine.example.com/webadaptorname/rest/services/Routing/NetworkAnalysisUtilities/GPServer/GetLiveTrafficStatus. Выходные данные GetLiveTrafficStatus могут быть использованы для проверки обновления данных о дорожном движении.

Пример выходных данных инструмента GetLiveTrafficStatus показывает, что последнее обновление было выполнено успешно, т.к. isLastUpdateSuccessful равно true. Если во время последнего обновления возникли ошибки, isLastUpdateSuccessful задается равным false, и причины сбоя возвращаются как часть параметра lastUpdatedMessages.

{
 "results": [
  {
   "paramName": "status",
   "dataType": "GPString",
   "value": {
    "cachePath":  "C:\\NA\\RoutingServices\\traffic-cache\\openlr.3a795f46cf77473fb1dc606ef73a2cb5",
     "isLastUpdateSuccessful":  true,
     "isUpdateInProgress":  false,
     "roadClosuresDataAvailable":  true,
     "roadClosuresDataSize":  64427318,
     "speedDataAvailable":  true,
     "speedsDataSize":  3977019303,
     "tempDataSize":  365970076,
     "trafficCacheStatus":  {
     "endTimeWindow":  1744065360000,
      "lastCreatedFileNames":  [
      "speeds.20250407132800.1.ff.dat",
       "speeds.20250407213200.1.nff.dat",
       "road_closures.20250407213200.1.dat",
       "speeds.20250407213200.info.dat",
       "speeds.20250407213600.info.dat"
     ],
      "lastDecodingElapsedTime":  0,
      "lastRemovedFileNames":  [
      "speeds.20250407173200.info.dat",
       "road_closures.20250407173200.1.dat"
     ],
      "lastUpdatedElapsedTime":  11582,
      "lastUpdatedMessages":  [
      
     ],
      "lastUpdatedTime":  1744062137882,
      "remainingSpeedLocationsToMatch":  0,
      "roadClosureLocationsCount":  23153,
      "selectedTrafficDataRegions":  [
      "CAN",
       "MEX",
       "USA_N",
       "USA_SW",
       "USA_SE",
       "USA_M"
     ],
      "speedLocationsCount":  1468719,
      "startTimeWindow":  1744047330000
    }
   }
  }
 ],
 "messages": [
  
 ]
}