Utilizzo dei lavori CRON in CloudFlare Workers tramite Wrangler – CloudSavvy IT

I Cloudflare Workers hanno dimostrato di essere una soluzione unica e potente per l’elaborazione serverless. Con la nuova aggiunta di Lavori CRON, ora puoi eseguire Cloudflare Workers in base a una pianificazione senza fare affidamento su un trigger esterno. In questo articolo, esploriamo come impostare un nuovo script, distribuire quello script su Cloudflare e infine attivare quello script con un lavoro CRON.

Introduzione a Wrangler

Prima di poter distribuire un nuovo script su Cloudflare, dobbiamo installare lo strumento da riga di comando Wrangler e configurarlo per distribuire il nostro nuovo script di lavoro.

Installazione dello strumento da riga di comando di Wrangler

Per creare una distribuzione del sito, Cloudflare ha creato il file Strumento da riga di comando Wrangler. Wrangler richiede l’installazione tramite entrambi NPM (gestore di pacchetti NodeJS) o Cargo (gestore di pacchetti linguistici Rust).

Installazione di NPM

npm i @cloudflare/wrangler -g

Carico

cargo install wrangler

cargo install wrangler --features sys-openssl

Accesso a Wrangler e creazione del sito

Innanzitutto, accediamo a Cloudflare utilizzando Wrangler. Per fare questo usiamo il nuovo wrangler login caratteristica. Ciò richiederà l’apertura di una pagina Web e, se sei già autenticato in Cloudflare, l’autenticazione avverrà molto rapidamente. Altrimenti, accedi e Wrangler configurerà automaticamente il token API.

wrangler login

Come puoi vedere dalla posizione di configurazione, c’è un file .toml file che ora contiene il tuo token API per semplificare tutte le operazioni successive. Questo file è contenuto nella directory home dell’utente e memorizzato nella sottodirectory .wranglerconfigdefault.toml.

Creazione di uno script di lavoro Cloudflare per interrogare WordPress CRON

In questo articolo, creeremo un semplice Cloudflare Worker che si limiterà a interrogare il file wp-cron.php file in base a una pianificazione. Il modo in cui funziona WordPress è che su una richiesta di pagina tenterà di eseguire qualsiasi lavoro CRON interno definito. Ciò significa che i lavori vengono eseguiti solo occasionalmente con un sito a basso volume e possono essere dannosi per un sito ad alto volume. Questo potrebbe non essere sempre fattibile su alcuni hosting, quindi puoi definire la stessa impostazione ma attivare esternamente il sistema CRON di WordPress.

Dobbiamo disabilitare l’impostazione predefinita di WordPress CRON utilizzando la seguente configurazione in wp-config.php. Questo ha effetto nel momento in cui il file viene salvato.

define('DISABLE_WP_CRON', true);

In genere, gli script di lavoro vengono attivati ​​solo quando vengono chiamati. In questo caso, pianificheremo un trigger CRON per eseguirlo ogni cinque minuti.

I lavoratori di Cloudflare pianificati dai trigger CRON verranno eseguiti su macchine sottoutilizzate per fare un uso più efficiente delle risorse.

Creazione della configurazione trigger CRON

Inneschi Cloudflare Worker CRON utilizzare la familiare sintassi Unix CRON. Questo lo rende immediatamente familiare e con una ricchezza di risorse di apprendimento alle spalle. Puoi persino definire più trigger CRON per un singolo script di lavoro, fino a un limite corrente di tre. La sintassi di configurazione è simile al codice seguente che mostra un trigger in esecuzione ogni 5 minuti.

[triggers]crons = ["*/5 * * * *"]

Ora che abbiamo la configurazione del trigger, come facciamo a mettere tutto insieme per distribuire il nostro script nell’ambiente Cloudflare?

Distribuzione dello script CRON di WordPress e pianificazione del lavoro CRON

Per creare tutti i file necessari e impostare un semplice worker javascript, possiamo utilizzare il comando di generazione integrato di cui dispone wrangler. Questo creerà una directory denominata, wordpress-cron che contiene tutto il necessario per distribuire un worker basato su javascript.

# Generate simple javascript Cloudflare Worker scaffold
wrangler generate wordpress-cron

Quindi, modifica il file index.js file generato. All’interno della sceneggiatura, chiameremo semplicemente il file wp-cron.php file con il parametro di doing_wp_cron. Quando viene chiamato, tutti i lavori CRON che devono essere eseguiti saranno.

addEventListener("fetch", event => {
  return event.respondWith(
    fetch("<https://mysite.com/wp-cron.php?doing_wp_cron>")
  )
})

Infine, dovrai aggiornare il tuo wrangler.toml file per includere le informazioni necessarie. Aggiorna il file di configurazione per includere il tuo acccount_id e zone_id. Per ottenere questi valori, individua la dashboard principale del tuo sito e scorri verso il basso per trovare la sezione API. Sia l’ID account che l’ID zona si troveranno lì.

name = "wordpress-cron"
type = "javascript"
account_id = "account_id"
workers_dev = false
route = "*mysite.com/wordpress-cron*"
zone_id = "zone_id"
[triggers]
crons = ["*/5 * * * *"]

Questo percorso corrisponderà a qualsiasi protocollo, http o httpse qualsiasi altro parametro o percorso oltre a wordpress-cron sezione. Sentiti libero di farlo come preferisci. In realtà, questo ti consente di attivare manualmente lo script, ma il trigger CRON lo gestirà per la maggior parte del tempo.

Infine, dobbiamo distribuire questo worker, cosa che puoi fare utilizzando il comando publish come mostrato di seguito.

wrangler publish

Dopo che lo script è stato distribuito ed è stato eseguito per la prima volta, è possibile visualizzare le statistiche e le informazioni nella pagina del dashboard di Cloudflare Workers.

Conclusione

Questo semplice esempio di utilizzo dei trigger CRON con Cloudflare Workers sta semplicemente scalfendo la superficie delle possibilità. Inizia a esplorare Cloudflare Workers e come questa tecnologia serverless può adattarsi al tuo flusso di lavoro oggi!