Skip To Content

Actualizar datos de tráfico en vivo

Después de publicar servicios de enrutamiento desde un dataset de red configurado con tráfico en vivo, es esencial asegurarse de que los datos de tráfico en vivo utilizados por estos servicios se actualizan a intervalos regulares. Esto se puede lograr siguiendo el flujo de trabajo que se describe a continuación:

Debe configurar un script de Python para que se ejecute cada dos minutos utilizando crontab. Esta utilidad de línea de comandos integrada permite a los usuarios programar tareas para que se ejecuten automáticamente a intervalos específicos. El script de Python configurado para ejecutarse a través de crontab requiere los siguientes requisitos previos:

  • Debe configurar el crontab para el sistema operativo para el usuario designado como la cuenta de ArcGIS Server.
  • El script de Python requiere la versión 3.9 de Python o posteriores. Es importante utilizar una versión de Python que no esté incluida en ArcGIS Server; en su lugar, debe utilizar la versión de Python que está disponible de forma nativa en su sistema operativo.
  • El entorno de Python debería tener el módulo requests instalado.

Actualice los datos de tráfico en vivo cada dos minutos ejecutando un script de Python mediante el crontab. En este ejemplo se presupone que la ubicación de instalación de ArcGIS Server es /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 -
Nota:

Los pasos anteriores deben realizarse en todos los equipos de un sitio ArcGIS Server con varios equipos.

El script de Python genera un archivo de registro denominado update_traffic_cache_scheduler.log, que se almacena en la carpeta predeterminada donde ArcGIS Server escribe sus registros, por ejemplo, <ArcGIS Server installation directory>/arcgis/server/usr/logs. Puede consultar este archivo de registro para determinar si se ha producido algún error durante la implementación del script.

Comprobar estado de datos de tráfico en directo

Después de configurar los datos de tráfico en vivo para que se actualicen a intervalos regulares, puede comprobar si los datos de tráfico se actualizan correctamente ejecutando la herramienta GetLiveTrafficStatus en el servicio de geoprocesamiento NetworkAnalysisUtilities. Este servicio está disponible en la misma carpeta donde se publicaron otros servicios de enrutamiento. Por ejemplo, si los servicios de enrutamiento se publicaron en una carpeta de servicios denominada Routing, la URL de la herramienta GetLiveTrafficStatus será https://machine.example.com/webadaptorname/rest/services/Routing/NetworkAnalysisUtilities/GPServer/GetLiveTrafficStatus. La salida de GetLiveTrafficStatus se puede utilizar para comprobar si los datos de tráfico se están actualizando correctamente.

El ejemplo de salida de la herramienta GetLiveTrafficStatus muestra que la última actualización se realizó correctamente, ya que isLastUpdateSuccessful es true. Si se producen errores durante la última actualización, isLastUpdateSuccessful se establece en false y los motivos del error se devuelven como parte de la propiedad 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": [
  
 ]
}