ELYSIA CRON: INSTALLAZIONE E CONFIGURAZIONE (GUIDA UFFICIALE)

[toc]

INTRO:

Elysia cron è un modulo che permette di estendere le funzionalità del cron distinguendo processi separati per ogni applicazione.  Ogni processo può poi essere impostato in modo che venga lanciato ad un certo intervallo di tempo, andando quindi a creare una serie di processi separati e paralleli tra loro. Sono presenti inoltre  numerose caratteristiche elencate nella descrizione del modulo. In ogni caso, stante il carattere apparentemente ostico del modulo che può sfiduciare i meno pazienti o i meno esperti, questa guida si pone come un aiuto facile ( direi di livello base) per costoro, senza pretese di esaustività o di completezza della documentazione. Talune parti o caratteristiche dello stesso sono state tralasciate appositamente affinchè possa rimanere una guida accessibile a tutti. Seguirà, con il tempo, una guida più avanzata per toccare altri aspetti del modulo,egualmente importanti  ma più specifici per gli sviluppatori.

Questa guida è stata verificata ed approvata dall'autore del modulo ed è linkata direttamente da drupal.org nella descrizione del modulo.

 

INSTALLAZIONE:

Prima di effettuare qualsiasi aggiunta o modifica è sempre consigliato di effettuare un backup di sicurezza.

Scaricare il modulo e  trasferirlo via ftp nella cartella sites/all/modules/ del vostro sito.

Il primo passo è modificare il crontab del server in modo che possa lanciare il cron ogni minuto, modifica questa, utile ma eventuale. Lasciare  l’impostazione di default (45 minuti) è tuttavia limitativa, in quanto i processi potranno essere configurati sempre da un’ora in su. Impostando invece il cron ogni minuto, possiamo poi configurare i processi in qualsiasi intervallo orario e dunque anche inferiori ai 45 minuti di default. Per effettuare questa modifica è possibile riferirsi direttamente alla documentazione di Drupal (http://drupal.org/cron) con la sola differenza che la regola di lancio del cron deve essere impostata su: 
 “ 1 * * * * ” e non su “ 45 * * * * ”. Es:    * * * * * /usr/bin/wget -O - -q http://example.com/cron.php

E’ possibile inoltre impostare una chiave di sicurezza: in questo caso dal pannello delle impostazioni dell’elysia cron è necessario aggiungere la chiave alla chiamata.

Es: * * * * * /usr/bin/wget -O - -q http://example.com/cron.php?cron_key=XYZ

Terminata questa fase (ripeto, eventuale) impostarne I permessi in gestione utente ed entrare nel pannello di configurazione del modulo (amministrazione/costruzione del sito/cron settings).

 

PROBLEMI ED INCOMPATIBILITA’:

Il modulo ha dimostrato una certa intolleranza (causa pagine bianche e processi falliti)in concomitanza del modulo Poormanscron. Se si desidera utilizzare l’elysia cron e il poormanscron è installato, diventa necessario disabilitare quest’ultimo.

SINTASSI PER CREARE SCRIPT E REGOLE:

Elysia Cron permette di impostare regole specifiche per ogni processo tramite l’inserimento di uno script nell’apposita sezione situata nell’amministrazione del modulo stesso. Lo script segue regole di sintassi rigide, pertanto prima di iniziare è necessario tenere sempre in mente questi schemi:

Gli operatori

-          L’asterisco (“ * ”) è un operatore che specifica tutti i valori permessi per un campo. Ad esempio un asterisco nel campo dell’ora sta ad indicare “ogni ora” (ovviamente è sempre soggetto ai valori degli altri campi)

-          La virgola (“ , ”) indica invece un elenco di valori. Ad esempio vogliamo che il processo sia avviato in tre orari diversi della giornata, allora scriviamo 3,4,21. Alle 21 e alle 3 e alle 4 del mattino il processo sarà lanciato.

-          L’operatore meno (“ – “) indica una serie di valori. Ad esempio, scrivere 1-5 sta a dire 1,2,3,4,5

-          Infine l’operatore slash (“ / ”) indica ripetitività del valore e permette quindi di saltarne alcuni. Ad esempio, scrivere */5 nel campo ora, sta a dire che il processo verrà lanciato ogni 5 ore, quindi alle 5, poi alle 10, poi alle 15, e così via.

 

I campi e il loro ordine

 

 

 +---------------- minuti (0 - 59)
 |  +------------- ore (0 - 23)
 |  |  +---------- giorno del mese (1 - 31)
 |  |  |  +------- mese (1 - 12)
 |  |  |  |  +---- giorno della settimana (0 - 6) (Domenica=0)
 |  |  |  |  |
 *  *  *  *  *
Solo per la Domenica inserire il valore 0, per tutti gli altri seguire la numerazione ordinaria (1=Lunedì, 2=Martedì ecc).

I campi (indicati dagli asterischi nello schema precedente) devono essere necessariamente  5 e, anche quando  non usati tutti (ad es. 2 su 5), devono sempre rimanere 5. Il primo campo, come da schema,  si riferirà sempre ai minuti, il secondo alle ore ecc. Conoscendo questa tabella e gli operatori possiamo fare qualche esercizio utile poi per la creazione di uno script che affronteremo a breve:

Voglio che il processo X venga lanciato ogni 15 minuti di ogni giorno, quindi scriverò    */15 * * * *

il primo campo è riferito ai minuti e con l’aggiunta dell’operatore ” /” ottengo la ripetitività del valore (ogni 15 min);

Voglio nel frattempo che il processo Y venga lanciato alle 14:00 di ogni Lunedì, quindi scriverò   0 14 * * 1

Qui invece inserisco nel secondo campo (campo ore) 14 che indica le ore 14:00 ed 1 che si riferisce al Lunedì in quanto inserito nel campo dei giorni della settimana;

Ancora alle 10:00 e alle 16:00 di ogni lunedi di Febbraio   0  10,16  *  2  1

La virgola mi permette di stabilire un elenco di valori, quindi nel campo ore consento solo i valori ore 10:00 ed ore 16:00, il penultimo campo è il mese e il due rappresenta ovviamente Febbraio.

Se abbiamo assimilato questi esempi possiamo procedere con la struttura dello script necessario alla personalizzazione dei nostri processi. Uno script è strutturato in questo modo:

<-> [rule] <ctx:CONTEXT> [job]

Che significa

<-> se la stringa inizia con il meno vuol dire che il processo è disabilitato;

[rule] è il crontab programmato (quello che creiamo facendo riferimento  alla tabella “I campi e il loro ordine”

<ctx:CONTEXT>: imposta il context del processo;

[job] è il nome del processo interessato (es. search_cron) o di una funzione (es 'process_queue();').

Sembra ancora difficile ma qualche esempio chiarirà le idee.

Voglio che l’indicizzazione della ricerca avvenga ogni  4 ore:       0 */4 * * * search_cron

Voglio che le news vengano inviate ogni primo del mese alle 14:    0 14 1 * * simplenews_cron

Per sapere il nome preciso del processo da inserire nello script, è sufficiente spulciare la penultima tabella dell’amministrazione dell’elysia cron, per avere un elenco completo di tutti i processi attivi sul sito.

E’ utile sapere che nella creazione dello script è possibile inserire dei commenti o descrizioni anteponendo al testo il segno #.

Chiarito come creare uno script, ora dobbiamo capire dove inserirlo. Andiamo in Amministra/Costruzione del sito/Cron Settings…

 

CONFIGURAZIONE DELLE IMPOSTAZIONI:

Nel pannello delle impostazioni la prima tabella rappresenta un riepilogo delle esecuzioni con la possibilità di avviare manualmente un determinato processo. La seconda tabella è utile solo per il reset delle statistiche. Passiamo all’ultima, “Impostazioni”, la più importante perché è qui che troviamo tutto il necessario per personalizzarci i processi.

Saltando il comodo help integrato, la prima tabella che ci troviamo dinanzi è “Installation Settings”. I campi ivi contenuti  si spiegano facilmente perché consentono di impostare la chiave di sicurezza, il rule schedule di default, il time limit e così via. Sono personalizzazioni utili ma se non si è sicuri di ciò che fate allora lasciate tutto come da default. La seconda tabella è un campo per inserire gli script. Con uno script si possono creare nuovi cron job o modificare quelli gia programmati. Riferendoci al paragrafo precedente possiamo inserire qui lo script o gli script creati .  Passiamo avanti ed apriamo le ultime 2 tabelle. La prima di queste elenca tutti i singoli processi (il loro numero dipende anche dai moduli installati):

Come da descrizione, la voce  disabilitato permette di disattivare il singolo processo, Schedule rule permette di impostare l’intervallo di tempo di un processo, se lasciato vuoto allora esso sarà quello di default indicato nella parentesi accanto( se non avete modificato il crontask apparirà settato su 45min, quindi 45 * * * *); il peso è l’ordine in cui partiranno i processi;  context specifica una regola per un processo .

 In seguito alla prima installazione non avremo nessun context; per  crearne uno, basterà scriverne un titolo o un riferimento nell’apposito campo accanto ad un processo e salvare. Una volta creato  possiamo notare che nell’ultima tabella  il context si sarà aggiunto a  quello di default: il campo accanto (chiamato default schedule rule) deve invece essere riempito con l’intervallo di tempo desiderato secondo la specifica forma (es: 45 * * * * ). Salvare e notare che accanto al processo dove avete creato la regola, l’intervallo nella parentesi è mutato con quello da voi prestabilito ed eventualmente sovrascriverà quello creato nel campo Schedule Rule. Questa regola potete applicarla ad altri processi che devono seguire la stessa sorte del primo, oppure può essere impostato come regola di default per tutti i processi presenti. In questo caso è necessario scrivere il nome della regola nel campo “default schedule” della prima tabella che abbiamo esaminato. E’ da ricordare che tutte le regole create con gli script sovrascrivono quelle create con i context e le impostazioni inserite nel campo Schedule rule. A questo punto potete personalizzare ogni processo presente affinchè vengano eseguiti ad intervalli differenti. La questione, apparentemente banale, ha invece rilevanza quando si vogliono gestire più attività del sito in tempi diversi: è il caso di una newsletter con invio automatico di email ad una certa ora, cosa ben distinta da altre attività che invece devono essere gestite in momenti diversi.  Con le conoscenze acquisite possiamo ora utilizzare la potenza dell’elysia cron per le più svariate esigenze. Seguono alcune applicazioni pratiche del modulo.

APPLICAZIONI PRATICHE:

o   CREARE NEWSLETTER CON INVIO AUTOMATIO AD INTERVALLI DI TEMPO

Scaricare ed installare Simplenews (e, se necessario, i suoi moduli aggiuntivi), settare i permessi e configurare il modulo secondo le proprie preferenze. Installare inoltre Insert Views tramite il quale è possibile inserire delle viste gia create all’interno del corpo di un contenuto. In tal modo possiamo creare una newsletter che prende ad esempio gli ultimi prodotti i inseriti direttamente dalla vista. Entrare nelle impostazioni del cron e creare un context (la creazione avviene scrivendo il titolo o un riferimento nel campo context) accanto al processo “simplenews_cron”. Salvare ed aprire l’ultima tabella della pagina “Context Settings”. Il context creato sarà ora presente e possiamo inserire nel campo “Default schedule rule” l’intervallo di tempo desiderato secondo la specifica forma (es.  15 * * * * ). Salvare nuovamente.(NB. Ho usato i context per mettere in evidenza il modo corretto per usarli ma, nel caso specifico, sarebbe più opportuno impostare una semplice regola in quanto si deve programmare un solo processo). A questo punto noteremo che nella parentesi accanto al processo simplenews_cron la regola sarà cambiata rispetto a quella di default. Cos’ configurato, nell’intervallo di tempo stbilito, tutte le news presenti nel vocabolario creato con il simplenews verranno automaticamente inviate ai destinatari.

Come premessa a questa guida si consiglia la lettura di:

Crontab Drupal: Configura I Cron Jobs Per Servizi Scheduling

 

Ti potrebbero anche interessare:

Creare una newsletter con invio automatico a determinati intervalli di tempo

MODULI NECESSARI: Simplenews - Insert Views - Elysia Cron

Crontab Drupal: Configura i cron jobs per servizi scheduling

[toc]

Introduzione al servizio Scheduling di CronTab (1/2)

Creazione e gestione di una newsletter con Simplenews

Questa che ho preparato è una delle più complete guide disponibili per creare un sistema di newsletter con drupal tramite l'uso del modulo Simplenews

Configurazione del modulo PATHAUTO

Guida facile per configurare Pathauto per Drupal

Il modulo Pathauto è molto utile per generare i percorsi del nostro sito automaticamente per ogni tipo di contenuto.
Per ottenere un buon funzionamento da questo modulo bisogna configurarlo bene. 
Andiamo in amministra/stuttura del sito/aliasurl ed in automated alias settings iniziamo la nostra configurazione:
In "general settings" possiamo scegliere il separatore delle parole, la lunghezza dell'alias url, ed altro, ma possiamo lasciare tranquillamente le

Drupal-Patch AuthorContact: Aggiungere campi al modulo di contatto dell'autore

L'Author Contact è un utilissimo modulo per Drupal che predispone un blocco con una form di contatto all'autore del nodo. Ecco rilasciata la patch per estendere i campi disponibili e renderlo un po simile a webform

Drupal WEB LINKS: Creare una directory web in modo facile e veloce!

Procedura guidata per la realizzazione di una web directory tramite l'uso del modulo web links