ライブ交通量を使用して構成されているネットワーク データセットからルート検索サービスを公開した後、これらのサービスが使用するライブ交通量データが定期的に更新されるようにすることが不可欠です。 これを実現するには、以下に説明するワークフローに従います。
crontab を使用して 2 分ごとに実行するよう Python スクリプトを構成する必要があります。 この組み込みのコマンドライン ユーティリティーを使用すると、タスクを指定した間隔で自動的に実行するようにスケジュールを設定できます。 crontab を使用して実行するように構成された Python スクリプトでは、次の前提要件が必要です。
- ArcGIS Server アカウントとして指定されたオペレーティング システム ユーザー向けに crontab を構成する必要があります。
- Python スクリプトには、Python バージョン 3.9 以降が必要です。 ArcGIS Server に付属していない Python のバージョンを使用することが重要です。お使いのオペレーティング システムでネイティブに使用できる Python バージョンを使用する必要があります。
- Python 環境に requests モジュールがインストールされている必要があります。
crontab を使用して Python スクリプトを実行することで、ライブ交通量データを 2 分ごとに更新します。 この例では、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 など) に格納されます。 このログ ファイルを確認して、スクリプトの実行中にエラーが発生しているかどうかを判断できます。
ライブ交通量データのステータスの確認
定期的に更新するようにライブ交通量データを設定した後、NetworkAnalysisUtilities ジオプロセシング サービス内で GetLiveTrafficStatus ツールを実行することで交通量データが正常に更新されているかどうかを確認できます。 このサービスは、他のルート検索サービスが公開されるフォルダーと同じフォルダーにあります。 たとえば、ルート検索サービスが Routing という名前のサービス フォルダーに公開された場合、GetLiveTrafficStatus ツールの URL は 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": [
]
}