Saltar a contenido

Trabajos

Jobs on QFieldCloud perform heavy operation with project files and layers within QGIS. Jobs are created in response to certain user actions.

Once a job is created, it is added to the project's job queue and waits for available QFieldCloud resources to run. At any given moment only one job can run per project. The rest of the queued jobs will perform in the same order as in they entered the queue.

Each job consists of one or more steps and each step is responsible for one self contained task on the project. QFieldCloud supports three predefined job workflows: process_projectfile, package and delta_apply.

While running, jobs are writing log messages which are available on project's jobs page for jobs that have reached a final status FINISHED or FAILED.

Jobs have access to project secrets.

Note

All jobs can be triggered using the QFieldCloud API.

Warning

Any of the triggering conditions described on this page might change without notice.

Warning

All jobs must finish within 10 minutes or they will result in a timeout error and will be terminated.

Job types

Process project file (process_projectfile) job

The process project file job is used to extract details about the project configuration and project layers, such as project CRS, layer CRS, layer name, layer validity etc. QFieldCloud validates the uploaded QGIS project file (.qgs/.qgz), as well as the supporting GeoPackages, TIFFs and other data source files. It also validates remote connection to PostGIS, WFS, WMS and other online data sources. QFieldCloud will open the project file in a QGIS instance on the server to extract all the necessary information.

Triggers

This job is triggered every time a file is uploaded to QFieldCloud, unless at least one of the following condition are valid:

  • No QGIS project file (.qgs/.qgz) has been uploaded yet.
  • The uploaded file is within the DCIM directory. Those files are assumed to be irrelevant to project validity.
  • There is already a process_projectfile job in PENDING status.

Troubleshoot

A process_projectfile job might result in FAILED status. Check the non-exhaustive list of causes below:

  • The uploaded QGIS project file (.qgs/.qgz) is unreadable, incomplete, broken or wrong. Try to reupload the QGIS project file.
  • QGIS is crashing after opening the project file. Try to identify the layer that is causing the crash by removing one layer at time from the project and reuploading the QGIS project file.

Note

Even if a process_projectfile job results in a SUCCESS status, it does not mean the project is properly configured. The SUCCESS status just states the project has been successfully opened and all the needed information has been extracted.

Package (package) job

The package job convert a QGIS project to a QField project, the same way it is done on QGIS via QFieldSync. The package job will prepare all layers marked as "Offline editing" to a single GeoPackage.

Triggers

This job is triggered every time the Download or Synchronize buttons are pressed on QField. Unless at least one of the following condition are valid:

  • The project has never run a process_projectfile job that resulted in SUCCESS status.
  • There is already a package job in PENDING status.
  • The project does not contain online vector layers (PostGIS, WFS etc), the latest package job result was SUCCESS and there were no file uploads, nor change uploads.

Troubleshoot

A package job might result in FAILED status. Check the non-exhaustive list of causes below:

  • The project has never run a process_projectfile job that resulted in SUCCESS status.
  • Some of the project layers are inaccessible from QFieldCloud. Make sure all files are uploaded and all credentials to online layers (PostGIS, WFS etc) are stored within the QGIS project file.

Delta apply (delta_apply) job

Delta apply jobs is responsible to make all pushed QField changes permanent.

Triggers

This job is triggered every time a Synchronize or Push changes button is pressed on QField, or Apply pending changes button is pressed on the Changes project page. If any of the following condition are valid:

  • The project never run a process_projectfile job that resulted in SUCCESS status.
  • There is already a delta_apply job in PENDING status.

Troubleshoot

A delta_apply job might result in FAILED status. Check the non-exhaustive list of causes below:

  • At least one of the online databases (PostGIS/WFS) used in the QGIS project reset the connection.
  • The project is too big and the job has failed to run.
  • There are hidden files and directories within the project that are preventing the normal work of QFieldCloud. Hidden files and directories are those starting with a leading dot (.).

Troubleshoot job logs

When running a job, usually you can find a step in the logs called "Check project layers" that prints a table with all the project layers and status next to them.

Los estados posibles son:

  • ok: la capa se carga correctamente en QFieldCloud.
  • invalid_dataprovider: el proveedor de datos de la capa no es válido. Por lo general, se muestra información adicional en el "Resumen del proveedor".
  • invalid_layer: Estos errores deberían ocurrir muy rara vez, si es que alguna vez lo hacen. Los datos se cargan correctamente, pero por alguna razón QGIS informa que la capa no es válida.

No se puede conectar al servicio "{SERVICE}".

QFieldCloud tries to connect to a PostgreSQL service that is not available. You should need to create a new pgservice secret so QFieldCloud can connect to the PostGIS service.

No se puede conectar al host "{HOST}".

QFieldCloud cannot establish a connection to the given {HOST}. Your service is not accessible from the QFieldCloud server. You might been to ask your IT department to whitelist the QFieldCloud IP.

No se puede conectar al host "localhost".

Ha cargado una capa que se conecta a una base de datos/servicio en su máquina local. Quite esa capa o reemplácela con una fuente de capa accesible por QFieldCloud.

Falta el archivo "{FILENAME}".

El archivo {FILENAME} (por ejemplo, /tmp/rndstr/files/data.gpkg) no se encuentra en el servidor QFieldCloud y no se puede abrir. Hay dos cosas que se deben revisar:

  • Si el archivo se ha subido a la nube. Puede verificar esto en la página Configuración del proyecto -> Archivos en QFieldCloud o QFieldSync.
  • Asegurándose de que el archivo se cargue con la misma ruta relativa que en su PC. Tenga en cuenta que todos los archivos del proyecto deben estar dentro del mismo directorio o subdirectorio del proyecto que el archivo del proyecto QGIS .qgs/.qgz. Tenga en cuenta también que los nombres de los directorios también deben conservarse, por ejemplo, si un archivo está almacenado en data/data.gpkg, asegúrese de que el directorio data también existe en QFieldCloud.
Volver al principio