Skip to main content

ライブ交通量データの更新

ライブ交通量を使用して構成されているネットワーク データセットからルート検索サービスを公開した後、これらのサービスが使用するライブ交通量データが定期的に更新されるようにすることが不可欠です。 これを実現するには、以下に説明するワークフローに従います。

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 -

Windows タスク スケジューラを使用して 2 分ごとに実行するよう Python スクリプトを構成する必要があります。 この組み込みの Windows ユーティリティーを使用すると、指定した時間でのタスクやプログラムの実行を自動化できます。 Windows タスク スケジューラのユーザー インターフェイスを使用して、ライブ交通量データを更新するタスクを作成できますが、このセクションでは、schtasks というコマンドライン ユーティリティーを使用した同じワークフローについて説明します。

Windows タスク スケジューラを使用して Python スクリプトを実行することで、ライブ交通量を 2 分ごとに更新します。 この例では、ArcGIS Server のインストール場所が C:\Program Files\ArcGIS\Server であることを前提としています。

schtasks /create /tn "ArcGISLiveTrafficDataUpdater" /tr "\"C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3\python.exe\" \"C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\Resources\ArcToolBox\Services\routingservices\update_traffic_cache_scheduler.py\"" /sc minute /mo 2 /ru "SYSTEM"

注意:

複数台のコンピューターによる ArcGIS Server サイトにある各コンピューターで、上記の手順を実行する必要があります。

Python スクリプトは、update_traffic_cache_scheduler.log という名前のログ ファイルを生成します。このファイルは、ArcGIS Server がそのログを書き込むデフォルト フォルダー (<ArcGIS Server installation directory>/arcgis/server/usr/logs など) に格納されます。 このログ ファイルを確認して、スクリプトの実行中にエラーが発生しているかどうかを判断できます。

Python スクリプトは、update_traffic_cache_scheduler.log という名前のログ ファイルを生成します。このファイルは、ArcGIS Server がそのログを書き込むデフォルト フォルダー (c:\arcgisserver\logs など) に格納されます。 このログ ファイルを確認して、スクリプトの実行中にエラーが発生しているかどうかを判断できます。

ライブ交通量データのステータスの確認

定期的に更新するようにライブ交通量データを設定した後、NetworkAnalysisUtilities ジオプロセシング サービス内で GetLiveTrafficStatus ツールを実行することで交通量データが正常に更新されているかどうかを確認できます。 このサービスは、他のルート検索サービスが公開されるフォルダーと同じフォルダーにあります。 たとえば、ルート検索サービスが Routing という名前のサービス フォルダーに公開された場合、GetLiveTrafficStatus ツールの URL は https://machine.example.com/webadaptorname/rest/services/Routing/NetworkAnalysisUtilities/GPServer/GetLiveTrafficStatus になります。 GetLiveTrafficStatus からの出力を使用して、交通量データが正常に更新されているかどうかを確認できます。

GetLiveTrafficStatus ツールの出力の例は、isLastUpdateSuccessfultrue なので、最後の更新が成功であったことを示しています。 最後の更新中にエラーが発生した場合、isLastUpdateSuccessfulfalse に設定され、失敗の理由が 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": [
]
}