Lavori
I lavori su QFieldCloud eseguono operazioni pesanti con i file di progetto e i layer all'interno di QGIS. I lavori vengono creati in risposta a determinate azioni dell'utente.
Una volta creato un lavoro, questo viene aggiunto alla coda di lavori del progetto e attende le risorse QFieldCloud disponibili per essere eseguito. In ogni momento può essere eseguito un solo lavoro per progetto. Gli altri lavori in coda verranno eseguiti nello stesso ordine in cui sono entrati nella coda.
Ogni lavoro è composto da una o più fasi e ogni fase è responsabile di un'attività autonoma del progetto. QFieldCloud supporta tre flussi di lavoro predefiniti: process_projectfile
, package
e delta_apply
.
Durante l'esecuzione, i lavori scrivono messaggi di log che sono disponibili nella pagina dei lavori del progetto per i lavori che hanno raggiunto lo stato finale FINISHED
o FAILED
.
I lavori hanno accesso ai segreti del progetto.
Note
Tutti i lavori possono essere lanciati utilizzando l'API di QFieldCloud.
Attenzione
- Le condizioni di attivazione descritte in questa pagina possono cambiare senza preavviso.
- Tutti i lavori devono terminare entro 10 minuti, altrimenti si verificherà un errore di timeout e verranno interrotti.
Tipi di lavoro¶
Elaborazione del file di progetto (process_projectfile
)¶
Il lavoro di elaborazione del file di progetto viene utilizzato per estrarre i dettagli sulla configurazione del progetto e sui layer del progetto, come il CRS del progetto, il CRS del layer, il nome del layer, la validità del layer ecc. QFieldCloud convalida il file di progetto QGIS caricato (.qgs
/.qgz
), così come i GeoPackages di supporto, i TIFF e altri file di origine dati. Inoltre, convalida la connessione remota a PostGIS, WFS, WMS e altre fonti di dati online. QFieldCloud aprirà il file di progetto in un'istanza QGIS sul server per estrarre tutte le informazioni necessarie.
Trigger¶
Questo lavoro viene lanciato ogni volta che un file viene caricato su QFieldCloud, a meno che non sia valida almeno una delle seguenti condizioni:
- Non è stato ancora caricato alcun file di progetto QGIS (
.qgs
/.qgz
). - Il file caricato si trova nella directory
DCIM
. Si presume che questi file siano irrilevanti per la validità del progetto. - C'è già un lavoro
process_projectfile
in statoPENDING
.
Risoluzione dei problemi¶
Un lavoro process_projectfile
potrebbe risultare nello stato FAILED
. Controlla l'elenco non esaustivo di cause riportato di seguito:
- Il file del progetto QGIS caricato (
.qgs
/.qgz
) è illeggibile, incompleto, rotto o sbagliato. Prova a caricare nuovamente il file del progetto QGIS. - QGIS si blocca dopo aver aperto il file di progetto. Cerca di identificare il layer che causa il crash rimuovendo un layer alla volta dal progetto e ricaricando il file di progetto QGIS.
Note
Anche se un lavoro process_projectfile
risulta in uno stato di SUCCESS
, ciò non significa che il progetto sia stato configurato correttamente. Lo stato SUCCESS
indica solo che il progetto è stato aperto con successo e che tutte le informazioni necessarie sono state estratte.
Creazione pacchetto (package
)¶
Il lavoro package
converte un progetto QGIS in un progetto QField, nello stesso modo in cui viene fatto su QGIS tramite QFieldSync. Il lavoro package
preparerà tutti i layer contrassegnati come "Modifica offline" in un unico GeoPackage.
Trigger¶
Questo lavoro viene lanciato ogni volta che i pulsanti Download o Synchronize vengono premuti su QField. A meno che non sia valida almeno una delle seguenti condizioni:
- Il progetto non ha mai eseguito un lavoro
process_projectfile
che abbia avuto come risultato lo statoSUCCESS
. - Esiste già un lavoro
package
in statoPENDING
. - Il progetto non contiene layer vettoriali online (PostGIS, WFS ecc.), l'ultimo risultato del lavoro
package
è statoSUCCESS
e non sono stati caricati file o modifiche.
Risoluzione dei problemi¶
Un lavoro package
potrebbe risultare nello stato FALLITO
. Controlla l'elenco non esaustivo di cause riportato di seguito:
- Il progetto non ha mai eseguito un lavoro
process_projectfile
che abbia avuto come risultato lo statoSUCCESS
. - Alcuni layer del progetto sono inaccessibili da QFieldCloud. Assicurati che tutti i file siano stati caricati e che tutte le credenziali per i layer online (PostGIS, WFS ecc.) siano memorizzate nel file di progetto QGIS.
Applicazione delta (delta_apply
)¶
Delta apply è responsabile di rendere permanenti tutte le modifiche apportate a QField.
Trigger¶
Questo lavoro viene lanciato ogni volta che viene premuto il pulsante Sincronizza o Applica le modifiche su QField o il pulsante Applica le modifiche in sospeso sulla pagina del progetto Modifiche. Se una delle seguenti condizioni è valida:
- Il progetto non ha mai eseguito un lavoro
process_projectfile
che ha dato come risultato lo statoSUCCESS
. - C'è già un lavoro
delta_apply
in statoPENDING
.
Risoluzione dei problemi¶
Un lavoro delta_apply
potrebbe risultare nello stato FAILED
. Controlla l'elenco non esaustivo di cause riportato di seguito:
- Almeno uno dei database online (PostGIS/WFS) utilizzati nel progetto QGIS ha resettato la connessione.
- Il progetto è troppo grande e il lavoro non ha funzionato.
- Ci sono file e directory nascoste all'interno del progetto che impediscono il normale funzionamento di QFieldCloud. I file e le directory nascosti sono quelli che iniziano con un punto iniziale (
.
).
Riapplicare le modifiche in QFieldCloud¶
- Clicca sul nome del progetto sotto I miei progetti.
- Vai alla sezione Modifiche (Le modifiche sono ordinate dalla più recente alla più vecchia)
- Trova le modifiche specifiche che desideri riapplicare.
- Nella colonna Azione sulla destra, clicca sulla lista a discesa.
-
Scegli l'azione desiderata per riapplicare le modifiche.
- Riapplicare modifiche specifiche: se è necessario riapplicare modifiche specifiche, selezionare ogni modifica che si desidera applicare nuovamente e fare clic su Riapplica.
- Riapplica le modifiche recenti: Se si preferisce riapplicare le modifiche più recenti apportate al progetto, identificare la modifica iniziale che si desidera ripristinare, quindi selezionare Riapplica questa e le modifiche più recenti.
Infine, clicca sul bottone Salva tutto.
Risoluzione dei problemi con log dei lavori¶
Quando si esegue un lavoro, di solito nei log si trova un passaggio chiamato "Check project layers" che stampa una tabella con tutti i layer del progetto e lo stato accanto ad essi.
Gli stati possibili sono:
- ok - Il layer viene caricato correttamente su QFieldCloud.
- invalid_dataprovider - Il provider di dati del layer non è valido. Di solito le informazioni aggiuntive sono mostrate nel "Riepilogo provider".
- invalid_layer - Questo errore dovrebbe accadere molto raramente. I dati vengono caricati correttamente, ma per qualche motivo QGIS riporta il layer come non valido.
Impossibile connettersi al servizio "{SERVICE}
".¶
QFieldCloud tenta di connettersi a un servizio PostgreSQL che non è disponibile. Dovresti aver bisogno di creare un nuovo pgservice secrets in modo che QFieldCloud possa connettersi al servizio PostGIS.
Impossibile connettersi all'host "{HOST}
".¶
QFieldCloud non può stabilire una connessione al dato {HOST}
. Il servizio non è accessibile dal server QFieldCloud. Si potrebbe aver chiesto al proprio reparto IT di whitelist l'IP QFieldCloud.
Impossibile connettersi all'host "localhost".¶
Hai caricato un layer che si collega a un database/servizio sul tuo computer locale. Rimuovi il layer o sostituiscilo con una sorgente accessibile da QFieldCloud.
File "{FILENAME}
" mancante.¶
Il file {FILENAME}
(ad esempio /tmp/rndstr/files/data.gpkg
) non si trova sul server QFieldCloud e non può essere aperto. Ci sono due cose da controllare:
- Indica se il file è stato caricato nel cloud. Puoi verificarlo nella pagina Impostazioni progetto -> Files su QFieldCloud o QFieldSync.
- Assicurati che il file venga caricato con lo stesso percorso relativo del tuo PC. Ricorda che tutti i file di progetto devono trovarsi nella stessa directory o sottodirectory del file di progetto QGIS
.qgs
/.qgz
. Tieni presente che anche i nomi delle directory devono essere mantenuti, ad esempio se un file è memorizzato indata/data.gpkg
, assicurati che la directorydata
esista anche su QFieldCloud.