Crons, proprietà
Adobe Commerce utilizza crons
proprietà per programmare attività ripetitive. È ideale per pianificare un'attività specifica da eseguire in determinati momenti della giornata. A causa della natura degli ambienti di sola lettura, è possibile eseguire un solo processo cron alla volta sull’istanza web per i progetti di infrastruttura cloud di Adobe Commerce. È consigliabile suddividere le attività con tempi di esecuzione lunghi in attività più piccole e in coda. In alternativa, puoi creare un’ istanza di lavoro.
L’Adobe consiglia di eseguire crons
come proprietario del file system. Esegui non eseguire crons
as root
o come utente del server web.
Questa configurazione è diversa dalle distribuzioni locali di Adobe Commerce, che hanno più processi cron predefiniti. Consulta Configurare i processi cron nel Guida alla configurazione.
Imposta processi cron
Il crons
La proprietà descrive i processi attivati in base a una pianificazione. Ogni processo richiede un nome e le seguenti opzioni:
spec
- Espressione cron utilizzata per la programmazione.cmd
- Comando su cui eseguire il comandostart
estop
.shutdown_timeout
—(Facoltativo) Se un processo cron viene annullato, indica il numero di secondi dopo i quali viene inviato un segnale SIGKILL per arrestare il processo o il processo. Il valore predefinito è 10 secondi.timeout
—(Facoltativo) La quantità massima di tempo per cui un processo cron può essere eseguito prima del timeout. Il valore predefinito è 86400 secondi (24 ore).
Per impostazione predefinita, a ogni progetto cloud di Commerce è associato il seguente crons
configurazione in .magento.app.yaml
file:
crons:
cronrun:
spec: "* * * * *"
cmd: "php bin/magento cron:run"
Se il progetto richiede processi cron personalizzati, puoi aggiungerli al predefinito crons
configurazione. Consulta Creare un processo cron.
crontab
Adobe Commerce ha aggiunto un’opzione di configurazione auto-crons solo ai progetti Pro per supportare self-service crons
negli ambienti di staging e produzione. Se questa opzione è abilitata, puoi utilizzare crontab
per rivedere la configurazione cron. Questo è non disponibile con progetti iniziali.
Anche se è possibile utilizzare crontab
per rivedere la configurazione dei progetti Pro, Adobe Commerce non utilizza crontab
per eseguire processi cron per i siti distribuiti nell’infrastruttura cloud.
Per esaminare la configurazione cron in ambienti Pro:
-
Utilizzare SSH per accedere all'ambiente remoto.
-
Elencare i processi cron pianificati.
code language-shell crontab -l
note note NOTE Se il crontab -l
restituisce unCommand not found
errore, è necessario Inviare un ticket di supporto Adobe Commerce per abilitare l'opzione di configurazione self-service di auto-crons sul progetto Pro.
L'esempio seguente mostra crontab
output per un ambiente con solo il valore predefinito crons
configurazione:
username@hostname:~$ crontab -l
# Crontab is managed by the system, attempts to edit it directly will fail.
SHELL=/etc/platform/6fck2obu3244c/cron-run
MAILTO=""
# m h dom mon dow job_name
* * * * * cronrun
Creare un processo cron
Un job cron include la pianificazione e le specifiche di tempo e il comando da eseguire all'ora pianificata. Per ambienti Starter e Pro integration
degli ambienti, l'intervallo minimo è una volta ogni cinque minuti. Per gli ambienti di staging e produzione Pro, l’intervallo minimo è una volta al minuto. In Adobe Commerce su infrastruttura cloud, puoi aggiungere processi cron personalizzati alla .magento.app.yaml
file in crons
sezione. Il formato generale è spec
per la programmazione e cmd
per specificare il comando o lo script personalizzato da eseguire.
Specifiche
Adobe Commerce utilizza un’espressione con cinque valori per crons
specifica (spec): * * * * *
- Minuti (da 0 a 59) Per tutti gli ambienti Starter e Pro, la frequenza minima supportata per i processi cron è di cinque minuti. Potrebbe essere necessario configurare le impostazioni nell’amministratore.
- Ora (da 0 a 23)
- Giorno del mese (da 1 a 31)
- Mese (da 1 a 12)
- Giorno della settimana (da 0 a 6) (da domenica a sabato; 7 è anche domenica in alcuni sistemi)
Alcuni esempi:
00 */3 * * *
viene eseguito ogni tre ore al primo minuto (03:00, 06:00)20 */8 * * *
viene eseguito ogni 8 ore al minuto 20 (12:20, 8:20, 16:20)00 00 * * *
esegue una volta al giorno a mezzanotte00 * * * 1
esegue una volta alla settimana il lunedì a mezzanotte.
crons
tempo specificato nel .magento.app.yaml
il file si basa sul fuso orario del server, non su quello specificato nei valori di configurazione dell'archivio nel database.Quando si determina la programmazione, considerare il tempo necessario per completare l'attività. Ad esempio, se si esegue un processo ogni tre ore e il completamento dell'attività richiede 40 minuti, è possibile modificare la tempistica pianificata.
Comando
Il cmd
specifica il comando o lo script personalizzato da eseguire. Il formato dello script di comando può includere quanto segue:
<path-to-php-binary> <project-dir>/<script-command>
Ad esempio:
crons:
spec: "00 */8 * * *"
cmd: "/usr/bin/php /app/abc123edf890/bin/magento export:start catalog_category_product"
In questo esempio, <path-to-php-binary>
è /usr/bin/php
. La directory di installazione, che include l’ID del progetto, è /app/abc123edf890/bin/magento
e l'azione script è export:start catalog_category_product
.
Aggiungi processi cron personalizzati al progetto
In Adobe Commerce su piattaforma di infrastruttura cloud, puoi aggiungere personalizzazioni alla crons
sezione del .magento.app.yaml
file.
integration
degli ambienti, l'intervallo minimo è una volta ogni cinque minuti. Per gli ambienti di staging e produzione Pro, l’intervallo minimo è una volta al minuto. Non è possibile configurare intervalli più frequenti dei valori minimi predefiniti.Sui progetti Adobe Commerce Pro, il funzione auto-crons deve essere abilitato nel progetto prima di poter aggiungere processi cron personalizzati agli ambienti di staging e produzione utilizzando .magento.app.yaml
file. Se questa funzione non è abilitata, Inviare un ticket di supporto Adobe Commerce per attivare la funzione di esecuzione automatica dell'esecuzione.
Per aggiungere processi cron personalizzati:
-
Nell’ambiente di sviluppo locale, modifica il
.magento.app.yaml
file in Adobe Commerce/app
directory. -
In
crons
, aggiungi la personalizzazione utilizzando il seguente formato:code language-yaml crons: <cron_name_1>: spec: "<schedule_time>" cmd: "<schedule_command>" <cron_name_2>: spec: "<schedule_time>" cmd: "<schedule_command>"
Nell'esempio seguente, il
productcatalog
il processo esporta il catalogo prodotti ogni otto ore, 20 minuti dopo l’ora.code language-yaml crons: magento: spec: '* * * * *' cmd: 'php bin/magento cron:run' productcatalog: spec: '20 */8 * * *' cmd: 'bin/magento export:start catalog_product_category'
-
Aggiungi, conferma e invia modifiche al codice.
code language-bash git add .magento.app.yaml && git commit -m "cron config updates" && git push origin <branch-name>
Aggiorna processi cron
Per aggiungere, rimuovere o aggiornare un processo personalizzato, modificare la configurazione in crons
sezione del .magento.app.yaml
file. Quindi, verificare gli aggiornamenti in remoto integration
prima di inviare le modifiche agli ambienti di staging e produzione.
Disabilita processi cron
È possibile disabilitare manualmente i processi cron prima di completare attività di manutenzione come la reindicizzazione o la pulizia della cache per evitare problemi di prestazioni. È possibile utilizzare ece-tools
Comando CLI cron:disable
per disabilitare tutti i processi cron e arrestare tutti i processi cron attivi.
Per disattivare i processi cron:
-
Sulla workstation locale, passa alla directory del progetto.
-
Utilizza SSH per accedere all’ambiente remoto.
code language-bash magento-cloud ssh
-
Disattivare i processi cron e arrestare i processi cron attivi.
code language-shell ./vendor/bin/ece-tools cron:disable
-
Dopo aver completato le attività di manutenzione necessarie, accertati di abilitare nuovamente i processi cron.
code language-shell ./vendor/bin/ece-tools cron:enable
Risoluzione dei problemi dei processi cron
Adobe ha aggiornato il pacchetto di infrastruttura Adobe Commerce on cloud per ottimizzare l’elaborazione dei cron in Adobe Commerce su piattaforma di infrastruttura cloud e risolvere i problemi relativi ai cron. Se riscontri problemi con l’elaborazione del cron, assicurati che il progetto utilizzi la versione più recente del ece-tools
pacchetto. Consulta Aggiorna utensili ECE.
È possibile esaminare le informazioni sull’elaborazione delle cron nei file di registro a livello di applicazione per ciascun ambiente. Consulta Registri applicazioni.
Consulta i seguenti articoli sul supporto Adobe Commerce per assistenza nella risoluzione dei problemi correlati ai cron: