Sit wèb ka kouri pwograme travay ak Cron

revèy

Nou gen yon kantite sistèm siveyans redondants nan travay ki regilyèman egzekite pwosesis. Gen kèk kouri chak minit, gen kèk yon fwa chak swa depann sou sa yo ap fè. Pou egzanp, nou ta ka egzekite yon script ki ekspòtasyon tout kliyan ki pa te fè yon acha nan 30 jou yo voye yo yon koupon.

Olye ke eseye kenbe tras nan tout bagay sa yo nan men, li pi fasil yo bati travay ki otomatikman pwograme ak egzekite. Sou sistèm Unix ki baze sou, sa a se akonpli ak Cron. Pou ou menm ki konnen sa w ap fè, santi yo lib yo edike m 'ak lektè yo si mwen jete soti nenpòt ki dezenfòmasyon.

Li malere, men pwomotè entènèt tipik la pa konnen ak Cron ditou. Menm si yo, konpayi hosting entènèt souvan pa bay aksè a, oswa sipò nan, Cron. Lame mwen an se youn nan lèt la - yo pèmèt ou sèvi ak li, men yo pa sipòte li.

Ki sa ki Cron?

Cron yo rele pou mo grèk Chronos, sa vle di tan. Cron kouri nan yon bouk kontinyèl nan kouri travay ke yo akimile pa Crontab (petèt yo te rele pou ... tabulatè. Moun sa yo ki travay yo tipikman refere yo kòm Cronjobs, epi yo ka referans Scripts nan sit ou.

Eksplikasyon Dyagram Cron

Kouman pou mwen konfigirasyon Crontab la

Lè w Cron aktyèlman kouri kapab difisil, se konsa isit la nan sa mwen te aprann ak ki jan mwen te fè li pou Si Souse:

  1. Mwen mete kanpe script mwen an tcheke Twitter la API pou wè si yon moun te reponn @ifsuck. Mwen konpare mesaj sa yo ak mesaj mwen deja sove sou sit entènèt la, k ap antre nan nenpòt ki nouvo.
  2. Yon fwa script la te travay, mwen pèmèt autorisations pou itilizatè a egzekite script la (744) e li te ajoute referans script la nan dosye Cronjob mwen an - plis sou sa pita.
  3. Lè sa a, mwen te oblije konekte sou sit entènèt mwen an via SSH. Sou yon Mac, ki te pran ouvèti Tèminal ak sezisman SSH non itilizatè@domain.com kote non itilizatè te non itilizatè a mwen te vle itilize ak domèn te sit entènèt la. Lè sa a, mwen te pouse e li te bay modpas la.
  4. Mwen Lè sa a, te eseye kouri script la ki sòti dirèkteman nan èd memwa nan lòd pa tape non an dosye ak chemen relatif sou sèvè a: /var/www/html/myscript.php
  5. Yon fwa mwen te resevwa li k ap travay kòrèkteman, mwen te ajoute kòd Unix ki nesesè nan premye liy dosye a: #! / usr / bin / php -q . Mwen kwè ke sa a tou senpleman di Unix itilize PHP egzekite script la.
  6. Nan liy lan lòd Tèminal, mwen tape kontab (lòt moun ka bezwen tape crontab -e) ak frape antre ... e se te tout sa ki te nesesè!

Sentaks pou dosye Cronjob ou a

Ak rèspè nan # 2 pi wo a, Cron itilize yon konplo enjenyeu pou detèmine lè Scripts ou yo pral egzekite. An reyalite, ou ka aktyèlman kopye epi kole sa a nan Cronfile ou (sou lame mwen an, li sitiye nan / var / bobin / cron / ak non fichye a menm jan ak non itilizatè mwen an).

# + —————- minit (0 - 59)
# | + ————- èdtan (0 - 23)
# | | + ———- jou mwa a (1 - 31)
# | | | + ——- mwa (1 - 12)
# | | | | + —- jou nan semèn nan (0 - 6) (Dimanch = 0 oswa 7)
# | | | | |
* * * * * /var/www/html/myscript.php

Pi wo a pral egzekite script mwen chak minit. Si mwen sèlman te vle li kouri yon fwa chak èdtan, mwen ta jis mete konbyen minit apre lè a ke mwen swete ke li kouri, kidonk si li te nan make la 30 minit:

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

Asire ou ke ou mete otorizasyon yo nan dosye sa a kòm ègzèkutabl, tou! Mwen te jwenn ke sentaks, autorisations, ak egzekite crontab soti nan fenèt la Tèminal yo te faktè ki pi enpòtan yo. Chak fwa mwen ta refè dosye a, mwen ta jwenn otorizasyon mwen yo bezwen Reyajiste kòm byen!

MIZAJOU: Si ou ta renmen asire travay yo ap kouri, yon sèl fason tou senpleman se mete ajou yon jaden baz done ak dènye fwa script la te kouri. Si li pi Rahman, ou ka jis script yon imèl voye bay tèt ou.

Resous Lòt Cron:

Konbyen travay ou ta ka otomatize itilize Cron?