Nach der Veröffentlichung von Routing-Services aus einem mit Live-Verkehrsdaten konfigurierten Netzwerk-Dataset muss sichergestellt werden, dass die von diesen Services verwendeten Live-Verkehrsdaten in regelmäßigen Intervallen aktualisiert werden. Dies kann mit dem nachfolgend beschriebenen Workflow erzielt werden:
Sie müssen mit dem Befehl crontab ein Python-Skript konfigurieren, dass alle zwei Minuten ausgeführt wird. Mit diesem integrierten Befehlszeilendienstprogramm können Benutzer die automatische Ausführung von Tasks in bestimmten Intervallen planen. Das Python-Skript, das für die Ausführung über crontab konfiguriert ist, benötigt die folgenden Voraussetzungen:
- Sie sollten crontab für den Betriebssystembenutzer konfigurieren, der als das ArcGIS Server-Konto designiert ist.
- Für das Python-Skript ist Python Version 3.9 oder später erforderlich. Es ist wichtig, eine Version von Python zu verwenden, die nicht im Lieferumfang ArcGIS Server enthalten ist; stattdessen sollten Sie die native Python-Version Ihres Betriebssystems verwenden.
- Die Python-Umgebung sollte das requests-Modul installiert haben.
Aktualisieren von Live-Verkehrsdaten alle zwei Minuten durch Ausführung eines Python-Skripts über crontab Im Beispiel wird vorausgesetzt, dass das Installationsverzeichnis von ArcGIS Server /arcgis/server lautet.
(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 -
Hinweis:
Die oben genannten Schritte müssen auf jedem Computer in einer ArcGIS Server-Site mit mehreren Computern durchgeführt werden.
Das Python-Skript generiert ein Protokoll namens update_traffic_cache_scheduler.log, das in dem Standardordner gespeichert wird, in den ArcGIS Server seine Protokolle schreibt, wie z B. <ArcGIS Server installation directory>/arcgis/server/usr/logs. Sie können diese Protokolldatei überprüfen, um festzustellen, ob bei der Implementierung des Skripts Fehler aufgetreten sind.
Überprüfen des Live-Verkehrsdatenstatus
Nachdem Sie die Live-Verkehrsdaten so eingerichtet haben, dass sie in regelmäßigen Intervallen aktualisiert werden, können Sie überprüfen, ob die Verkehrsdaten erfolgreich aktualisiert werden, indem Sie das Werkzeug GetLiveTrafficStatus innerhalb des Geoverarbeitungsservices NetworkAnalysisUtilities ausführen. Dieser Service ist in demselben Ordner verfügbar, in dem auch andere Routing-Services veröffentlicht wurden. Wenn die Routing-Services beispielsweise in einem Service-Ordner mit dem Namen Routing veröffentlicht wurden, lautet die URL für das GetLiveTrafficStatus-Werkzeug https://machine.example.com/webadaptorname/rest/services/Routing/NetworkAnalysisUtilities/GPServer/GetLiveTrafficStatus. Die Ausgabe von GetLiveTrafficStatus kann verwendet werden, um zu überprüfen, ob die Verkehrsdaten erfolgreich aktualisiert werden.
Die Beispiel-Ausgabe aus dem GetLiveTrafficStatus-Werkzeug zeigt, dass die letzte Aktualisierung erfolgreich war, da für isLastUpdateSuccessful der Wert true zurückgegeben wurde. Wenn bei der letzten Aktualisierung Fehler aufgetreten sind, wird isLastUpdateSuccessful auf false festgelegt, und die Gründe für den Fehler werden als Teil der Eigenschaft lastUpdatedMessages zurückgegeben.
{
"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": [
]
}