Crons, proprietà
Adobe Commerce utilizza la proprietà crons
per pianificare 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, è possibile creare un'istanza di worker.
L'Adobe consiglia di eseguire crons
come proprietario del file system. not esegui crons
come 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 nella Guida alla configurazione.
Imposta processi cron
La proprietà crons
descrive i processi attivati in base a una pianificazione. Ogni processo richiede un nome e le seguenti opzioni:
spec
- Espressione cron utilizzata per la pianificazione.cmd
- Comando da eseguire sustart
estop
.shutdown_timeout
—(Facoltativo) Se un processo cron viene annullato, questo è 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) Il tempo massimo di esecuzione di un processo cron prima del timeout. Il valore predefinito è 86400 secondi (24 ore).
Per impostazione predefinita, ogni progetto cloud Commerce ha la seguente configurazione crons
predefinita nel file .magento.app.yaml
:
crons:
cronrun:
spec: "* * * * *"
cmd: "php bin/magento cron:run"
Se il progetto richiede processi cron personalizzati, è possibile aggiungerli alla configurazione predefinita di crons
. Consulta Creare un processo cron.
crontab
Adobe Commerce ha aggiunto un'opzione di configurazione automatica solo ai progetti Pro per supportare la configurazione self-service di crons
negli ambienti di staging e produzione. Se questa opzione è abilitata, è possibile utilizzare crontab
per rivedere la configurazione cron. non disponibile con progetti iniziali.
Sebbene sia possibile utilizzare crontab
per rivedere la configurazione nei progetti Pro, Adobe Commerce non utilizza crontab
per eseguire processi cron per i siti distribuiti nell'infrastruttura cloud.
Per esaminare la configurazione cron negli ambienti Pro:
-
Utilizza SSH per accedere all'ambiente remoto.
-
Elencare i processi cron pianificati.
code language-shell crontab -l
note note NOTE Se il comando crontab -l
restituisce un erroreCommand not found
(solo negli ambienti Pro Staging e Production), è necessario inviare un ticket di supporto Adobe Commerce per abilitare l'opzione di configurazione self-service di Auto-Crons nel progetto.
L'esempio seguente mostra l'output crontab
per un ambiente con solo la configurazione predefinita crons
:
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 gli ambienti Starter e gli ambienti Pro integration
, 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, è possibile aggiungere processi cron personalizzati al file .magento.app.yaml
nella sezione crons
. Il formato generale è spec
per la pianificazione e cmd
per specificare il comando o lo script personalizzato da eseguire.
Specifiche
Adobe Commerce utilizza un'espressione con cinque valori per una specifica crons
: * * * * *
- 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 (12:00, 3:00, 6:00)20 */8 * * *
viene eseguito ogni 8 ore al minuto 20 (12:20, 8:20, 16:20)00 00 * * *
viene eseguito una volta al giorno a mezzanotte00 * * * 1
viene eseguito una volta alla settimana il lunedì a mezzanotte.
crons
specificata nel file .magento.app.yaml
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
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 dello script è export:start catalog_category_product
.
Aggiungi processi cron personalizzati al progetto
In Adobe Commerce su piattaforma infrastruttura cloud, è possibile aggiungere personalizzazioni alla sezione crons
del file .magento.app.yaml
.
integration
, 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.Nei progetti Adobe Commerce Pro, la funzionalità auto-crons deve essere abilitata nel progetto prima di poter aggiungere processi cron personalizzati agli ambienti di staging e produzione utilizzando il file .magento.app.yaml
. Se questa funzione non è abilitata, Invia un ticket di supporto Adobe Commerce per abilitare i cronisti automatici.
Per aggiungere processi cron personalizzati:
-
Nell'ambiente di sviluppo locale, modificare il file
.magento.app.yaml
nella directory Adobe Commerce/app
. -
Nella sezione
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 processo
productcatalog
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 nella sezione crons
del file .magento.app.yaml
. Quindi, eseguire il test degli aggiornamenti nell'ambiente integration
remoto 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 il comando CLI ece-tools
cron:disable
per disabilitare tutti i processi cron e arrestare tutti i processi cron attivi.
Per disabilitare 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 si verificano problemi con l'elaborazione cron, verificare che il progetto utilizzi la versione più recente del pacchetto ece-tools
. Consulta Aggiorna strumenti 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: