コンテンツにスキップ

ジョブ

QFieldCloud上のジョブはQGIS内のプロジェクトファイルやレイヤーを使って重い操作を行います。ジョブはユーザーの特定の操作に応じて作成されます。

ジョブが作成されると、プロジェクトのジョブキューに追加され、利用可能なQFieldCloudリソースが実行されるのを待ちます。プロジェクトごとに実行できるジョブは1つだけです。キューに入れられた残りのジョブは、キューに入ったときと同じ順序で実行されます。

各ジョブは1つまたは複数のステップで構成され、各ステップはプロジェクト上の1つの自己完結したタスクを担当します。QFieldCloudは3つの定義済みジョブワークフローをサポートしています: process_projectfilepackagedelta_applyです。

ジョブが実行されている間、ジョブは最終ステータス FINISHED または FAILED に達したジョブのログメッセージをプロジェクトのジョブページに書き込みます。

ジョブはプロジェクトのシークレットにアクセスできます。

備考

すべてのジョブはQFieldCloud APIを使用してトリガーできます。

警告

  • このページに記載されているトリガー条件は、予告なく変更される場合があります。
  • すべてのジョブは10分以内に終了しないとタイムアウトエラーとなり終了します。

ジョブの種別

プロジェクトファイルを処理する (process_projectfile) ジョブ

プロジェクトファイルを処理するジョブは、プロジェクト CRS、レイヤー CRS、レイヤー名、レイヤーの有効性など、プロジェクト構成とプロジェクトレイヤーに関する詳細を抽出するために使用されます。QFieldCloud は、アップロードされた QGIS プロジェクトファイル (.qgs/.qgz) と、サポートする GeoPackages、TIFF、およびその他のデータソース ファイルを検証します。また、PostGIS、WFS、WMS、その他のオンラインデータソースへのリモート接続も検証します。QFieldCloud は、サーバー上の QGIS インスタンスでプロジェクトファイルを開き、必要な情報をすべて抽出します。

トリガー

このジョブは、次のうち一つの条件が当てはまらない限り、ファイルがQFieldCloudにアップロードされるたびに発生します。:

  • QGISプロジェクトファイル(.qgs/.qgz)はまだアップロードされていません。
  • アップロードされたファイルはDCIMディレクトリ内にある。これらのファイルはプロジェクトの有効性とは無関係であると見なされます。
  • 既に PENDING ステータスの process_projectfile ジョブがあります。

トラブルシューティング

process_projectfileジョブがFAILEDステータスになっているかもしれない。以下のリストを原因を探ってみてください:

  • アップロードされたQGISプロジェクトファイル(.qgs/.qgz)が読めない、不完全、壊れている、または間違っています。QGISプロジェクトファイルを再アップロードしてみてください。
  • プロジェクトファイルを開くとQGISがクラッシュします。プロジェクトからレイヤーを1つずつ削除し、QGISプロジェクトファイルを再アップロードして、クラッシュの原因となっているレイヤーを特定してください。

備考

たとえ process_projectfile ジョブの結果が SUCCESS ステータスになったとしても、プロジェ クトが正しく設定されたことにはなりません。SUCCESS ステータスは、プロジェクトが正常にオープンされ、必要な情報がすべて抽出されたことを示すだけです。

パッケージ (package) ジョブ

package ジョブは QGIS プロジェクトを QField プロジェクトに変換します。package ジョブは "Offline editing" としてマークされたすべてのレイヤーを一つの GeoPackage に準備します。

トリガー

このジョブは、以下の条件の少なくとも1つが有効でない限り、QField上でDownloadボタンまたはSynchronizeボタンが押されるたびに発生します。:

  • このプロジェクトは SUCCESSステータスとなっているprocess_projectfile ジョブを実行したことがありません。
  • すでに PENDING ステータスの package ジョブがあります。
  • このプロジェクトにはオンラインのベクターレイヤー(PostGIS、WFSなど)は含まれておらず、最新のpackageジョブの結果はSUCCESSで、ファイルのアップロードも変更のアップロードもありませんでした。

トラブルシューティング

package ジョブが FAILED ステータスになっているかもしれない。以下のリストから原因を探ってください:

  • このプロジェクトは SUCCESSステータスとなっているprocess_projectfile ジョブを実行したことがありません。
  • プロジェクトレイヤーの一部がQFieldCloudからアクセスできない。すべてのファイルがアップロードされ、オンラインレイヤー(PostGIS、WFSなど)へのすべての認証情報がQGISプロジェクトファイル内に保存されていることを確認してください。

デルタ適用 (delta_apply) ジョブ

デルタ適用ジョブ は、プッシュされたすべての QField の変更を永続化する責任があります。

トリガー

このジョブはQFieldでSynchronizeまたはPush changesボタンが押されるたびに、またはApply pending changesボタンがChangesプロジェクトページで押されるたびにトリガーされます。ただし、以下の条件のいずれかが有効な場合に限ります:

  • このプロジェクトは SUCCESSステータスとなっているprocess_projectfile ジョブを実行したことがありません。
  • 既に PENDING ステータスの delta_apply ジョブがあります。

トラブルシューティング

delta_apply ジョブが FAILED ステータスになっているかもしれない。以下のリストから原因を探ってください:

  • QGISプロジェクトで使用されているオンラインデータベース(PostGIS/WFS)の少なくとも1つは、接続をリセットします。
  • プロジェクトが大きすぎて、ジョブが失敗しました。
  • プロジェクト内に、QFieldCloudの正常な動作を妨げている隠しファイルや隠しディレクトリがあります。隠しファイルや隠しディレクトリとは、先頭がドット(.)で始まるファイルやディレクトリのことです。

QFieldCloudで変更を再適用する

  1. _My projects_の下にあるプロジェクト名をクリックします。.
  2. _Changes_セクションに移動してください。(変更点は新しいものから古いものへとソートされています)
  3. 再適用したい特定の変更箇所を見つけます。
  4. 右側の_Action_列で、ドロップダウンリストをクリックします。
  5. 変更を再適用するために必要なアクションを選択します。

    • 特定の変更を再適用する: 特定の変更を再適用する必要がある場合は、再適用する各変更を選択し、__Re-apply__をクリックします。
    • 最近の変更を再適用します: プロジェクトに加えられた最新の変更を再適用したい場合は、復元したい最初の変更を特定し、__Re-apply this and newer changes__を選択します。

最後に、__Save all__ボタンをクリックします。

変更の再適用
変更の再適用

ジョブログのトラブルシューティング

ジョブを実行すると、通常、ログに "Check project layers"(プロジェクトレイヤーのチェック)というステップがあり、すべてのプロジェクトレイヤーとその横にステータスが表示された表が印刷されます。

考えられるステータスは以下の通り:

  • ok - レイヤーはQFieldCloudに正しくロードされます。
  • invalid_dataprovider - レイヤーのデータプロバイダーが無効である。通常、追加情報は "Provider Summary" に表示されます。
  • invalid_layer - このようなエラーが発生することはほとんどないはずです。データは正しくロードされていますが、何らかの理由でQGISはレイヤーを無効と報告します。

サービス "{SERVICE}" に接続できません。

QFieldCloudが利用できないPostgreSQLサービスに接続しようとしている。QFieldCloudがPostGISサービスに接続できるように、新しいpgservice secretsを作成する必要があります。

ホスト "{HOST}" に接続できません。

QFieldCloud は指定された {HOST} への接続を確立できません。QFieldCloud サーバからサービスにアクセスできません。IT部門にQFieldCloudのIPをホワイトリストに登録するよう依頼する必要があるかもしれません。

ホスト"localhost"に接続できません。

ローカルマシンのデータベース/サービスに接続するレイヤーをアップロードしました。そのレイヤーを削除するか、QFieldCloudからアクセス可能なレイヤーソースに置き換えてください。

ファイル "{FILENAME}" が見つかりません。

ファイル{FILENAME}(例:/tmp/rndstr/files/data.gpkg)がQFieldCloudサーバーに見つからず、開けません。確認すべきことが2つあります:

  • ファイルがクラウドにアップロードされているかどうか。QFieldCloudまたはQFieldSyncのプロジェクトの設定 -> ファイルページで確認できます。
  • ファイルがPCと同じ相対パスでアップロードされていることを確認してください。すべてのプロジェクトファイルは .qgs/.qgz QGISプロジェクトファイルと同じプロジェクトディレクトリまたはサブディレクトリにある必要があります。ディレクトリ名も保存してください。例えば、ファイルがdata/data.gpkgに保存されている場合、QFieldCloudにもdataディレクトリが存在することを確認してください。