I siti Web Pò Esecutà Compiti Pianificati cù Cron

roggiu

Avemu un numeru di sistemi di monitoraghju ridundanti à u travagliu chì eseguiscenu regolarmente i prucessi. Certi correnu ogni minutu, alcuni una volta a notte secondu ciò chì facenu. Per esempiu, pudemu eseguisce un script chì esporta tutti i clienti chì ùn anu micca fattu una compra in 30 ghjorni per invià li un cuponu.

Invece di pruvà à tene traccia di tutti questi à a manu, hè assai più faciule di custruisce travagli chì sò automaticamente pianificati è eseguiti. In i sistemi basati in Unix, questu hè realizatu cù Cron. Per voi, ghjente chì sà ciò chì fate, sentitevi liberi di educà mi è i lettori se scacciu qualchì disinformazione.

Hè disgraziatu, ma u tipicu sviluppatore web ùn hè micca cunnisciutu à Cron. Ancu sì sò, e cumpagnie di hosting web spessu ùn furniscenu micca l'accessu, o u supportu di, Cron. U mo òspite hè unu di questi ultimi - vi permettenu di aduprà, ma ùn u sustenenu micca.

Cosa hè Cron?

Cron hè chjamatu per a parolla greca Chronos, chì significa tempu. Cron corre in un loop continuu per eseguisce attività chì sò accumulate da Crontab (forse chjamatu per Insigniaulator. Queste attività sò tipicamente chjamate Cronjobs, è ponu riferisce script in u vostru situ.

Cron Diagram Spiegazione

Cumu configuru u Crontab

Uttene Cron à correre in realtà pò esse sfida, allora eccu ciò chì aghju amparatu è cumu l'aghju fattu Si Succia:

  1. Aghju configuratu u mo script per verificà Twitter API per vede se qualchissia avia rispostu @f_uccheddu. Aghju paragunatu quelli messaghji à i missaghji chì aghju dighjà salvatu nantu à u situ web, entrendu qualchì novu.
  2. Una volta chì u script hà travagliatu, aghju permessu permessi per l'Usuariu per eseguisce u script (744) è aghju aghjustatu u riferimentu di script à u mo file Cronjob - più nantu à questu dopu.
  3. Dopu aghju avutu da accede à u mo situ web via SSH. In un Mac, chì hà pigliatu l'apertura di u Terminale è a scrittura SSH username@domain.com induve u username era u username chì vulia aduprà è u duminiu era u situ web. Dopu mi sò statu dumandatu è datu a password.
  4. Dopu aghju pruvatu à lancià u script direttamente da u prompt di cumanda scrivendu u nome di u filu è u percorsu relative in u servitore: /var/www/html/myscript.php
  5. Una volta chì l'aghju funzionatu currettamente, aghju aghjuntu u codice Unix necessariu in a prima linea di u fugliale: #! / usr / bin / php -q . Credu chì questu dice semplicemente à Unix di aduprà PHP per eseguisce u script.
  6. À a linea di cummanda di u Terminale, aghju scrittu crontab (altri pò avè bisognu à scrive crontab -e) è chjappà enter ... è era tuttu ciò chì era necessariu!

Sintassi per u vostru Cronjob File

In quantu à # 2 sopra, Cron utilizza un schema ingeniosu per determinà quandu i vostri script saranu eseguiti. In fatti, pudete copià è incollà questu in u vostru Cronfile (in u mo host, hè situatu in / var / spool / cron / cù u nome di schedariu listessu chè u mo nome d'utilizatore).

# + —————- minutu (0-59)
# | + ————- ora (0 - 23)
# | Œ œ + ———- ghjornu di u mese (1 - 31)
# | Œ œ Œ œ + ——- mese (1-12)
# | Œ œ Œ œ Œ œ + —- ghjornu di a settimana (0 - 6) (dumenica = 0 o 7)
# | Œ œ Œ œ Œ œ Œ œ
* * * * * /var/www/html/myscript.php

Quì sopra eseguirà u mo script ogni minutu. Se vulessi solu chì currissi una volta à l'ora, aghju da mette solu quanti minuti dopu l'ora chì vogliu ch'ella currissi, allora s'ellu era à a marca di 30 minuti:

30 * * * * /var/www/html/myscript.php

Assicuratevi di definisce ancu i permessi à stu schedariu cum'è eseguibile! Aghju trovu chì a sintassi, i permessi, è l'esecuzione di crontab da a finestra di u Terminale eranu i fattori più impurtanti. Ogni volta chì riparaghju u fugliale, truveraghju ancu i mo permessi chì necessitanu di resettà!

AGGIORNAMENTU: Se vulete assicurà chì i travagli sò in esecuzione, un solu modu hè di aghjurnà un campu di basa di dati cù l'ultima volta chì u script hè statu eseguitu. S'ellu hè più pocu frequente, pudete scrive solu un email mandatu à voi stessu.

Risorse Cron Addizionali:

Quantu impieghi puderebbe automatizà aduprendu Cron?

8 Comments

  1. 1

    Articulu ben trattatu nantu à a creazione di un cron, per qualcunu novu in crojobs, a parte più difficiule in a creazione di un cron hè di capisce l'intervallu di esecuzione di cronjob, è hè abbastanza cumunu per uttene un intervallu sbagliatu à a prima prova. Se i vostri cronjobs sò sensibili à u tempu, hè bonu d'inclure alcuni codici in u script per riprisentà u statutu in modu chì siate tenuti informati di u statu di esecuzione di travagliu.

  2. 2

    Salute Doug,

    Un paru di cose da cunsiderà quandu si travaglia cù travagli cron.

    Prima, dopu à qualchì decina, vulete chì avete una UI, una basa di dati è una sintassi d'aspettu inglese 😉

    Dopu, cron sparerà u travagliu à u tempu specificatu, indipendentemente da se l'invucazione precedente di u travagliu hè finita. Cusì gestisce un impiegu una volta à u minutu chì piglia 2 minuti porterà rapidamente à assai u listessu travagliu in esecuzione.

    Dopu, ùn ci hè accantu à nisun rapportu d'errore quandu qualcosa ùn và bè, allora duverete aghjunghje u vostru propiu segnalazione d'errore.

    Aghju trattatu questi in un paiu di modi:
    - avè l'applicazione attivata via cron look in una basa di dati per determinà ciò chì deve esse eseguitu. Corre una volta à u minutu o à l'ora secondu ciò chì vulete
    - fate chì ogni script crea un fugliale "lock" in / tmp è s'ellu esiste, ùn ricuminciate micca, questu impedisce i travagli duplicati se ùn li vulete micca
    - se u script trova u fugliale di serratura più vechju di 1 ora (o tuttu ciò chì suggerisce chì site mortu) mandate una alerta email
    - avete u script per invià email in caso di fallimentu di u travagliu in modo da sapete chì qualcosa ùn hè andatu male
    - fighjate quadri cum'è Flux o pianificatori cummerciali quandu e vostre necessità superanu uni pochi di script

    Chris

  3. 4

    Aghjustu ancu chì in a maiò parte di i sistemi Linux / Unix, "crontab -e" hè ciò chì aduprate per edità u vostru crontab. Pensu chì u vostru òspite (Jumpline) utilizza una versione mudificata per ragioni di sicurezza.

  4. 5

    Mi ricordu sempre u primu ghjornu chì aghju scontru à Cronnie. Avia intesu parlà di ella, ch'ella era affidabile, sempre in tempu, ma qualchì volta un pocu cunfusa per e so intenzioni.

    Aghju trovu chì questu era veru perchè era un misteru cumpletu per mè à l'iniziu. Dopu avè dumandatu intornu à ella, aghju pigliatu abbastanza prestu nantu à cume li piacia à operà. Avà, ùn possu micca imaginà un ghjornu passendu senza ella in a mo vita. Ella face u mundanu eccitante, è solleva assai carichi da e mo spalle.

    In tuttu seriu, sentu chì aghju graffiatu solu a superficia cù ciò chì possu automatizà cù travagli cron. Sò veramente un megliu amicu di i sviluppatori. Se utilizate qualcunu cum'è CPanel per gestisce u vostru servitore, furnisce una interfaccia assai più amichevule per creà crons. Cumplete cù menù dispunibuli per minutu, ora, ghjornu, mese, ecc. Chì custruisce a linea cron per voi.

  5. 7

    Vede definitivamente chì hè qualcosa chì ogni venditore deve aduprà ... Ci hè qualchissia chì possa furnisce stu serviziu perchè sona un pocu troppu "techy"?

Chì ne pensi?

Stu situ utilizeghja Akismet per reducisce u puzzicheghju. Sapete ciò chì i dati di i vostri dati è processatu.