Skip To 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 -
注意:

複数台のコンピューターによる 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 ツールの出力の例は、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": [
  
 ]
}