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, 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è, ou lib pou edike m 'ak lektè yo si mwen jete 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 ka 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 yo 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 username@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 konsiderasyon # 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. 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?

8 Kòmantè

  1. 1

    Byen kouvri atik sou mete kanpe yon cron, pou yon moun nouvo nan crojobs, pati ki pi difisil nan mete kanpe yon cron se figi konnen entèval la ekzekisyon cronjob, epi li se byen commong yo ka resevwa yon entèval sa ki mal nan premye eseye. Si cronjobs ou yo se tan sansib, li se bon yo enkli kèk kòd nan script la eko soti estati pou ke ou kenbe enfòme sou estati a ekzekisyon travay.

  2. 2

    Hi Doug,

    Yon koup de bagay yo konsidere lè w ap travay ak travay cron.

    Premyèman, apre kèk douzèn, ou pral swete ou te gen yon UI, yon baz done ak sentaks angle-kap 😉

    Dezyèmman, cron pral revoke travay la nan moman espesifye a, kèlkeswa si envokasyon anvan travay la fini. Se konsa, kouri yon travay yon fwa nan yon minit ki pran 2 minit ap byen vit mennen nan anpil nan menm travay la kouri.

    Apre sa, gen akote pa gen okenn rapò erè lè yon bagay ale mal, kidonk, ou pral bezwen ajoute pwòp rapò erè ou.

    Mwen te adrese sa yo nan yon koup nan fason:
    - gen aplikasyon an deklanche atravè gade cron nan yon baz done detèmine kisa ki bezwen kouri. Kouri li yon fwa pa minit oswa èdtan depann sou sa ou vle
    - gen chak script kreye yon dosye 'fèmen' nan / tmp epi si li egziste, pa kòmanse ankò, sa anpeche kopi travay si ou pa vle yo
    - si script la jwenn dosye a fèmen ki gen plis pase 1 èdtan (oswa kèlkeswa sa sijere ou te mouri) voye yon alèt imèl
    - gen script la voye imèl sou echèk nan travay la pou w konnen yon bagay ale mal
    - gade kad tankou Flux oswa orè komèsyal lè bezwen ou jwenn pi lwen pase yon Scripts kèk

    Chris

  3. 4

    Mwen pral ajoute tou ke sou pifò sistèm Linux / Unix, "crontab -e" se sa ou itilize pou edite crontab ou. Mwen panse ke lame ou a (Jumpline) ap itilize yon vèsyon modifye pou rezon sekirite.

  4. 5

    Mwen toujou sonje premye jou mwen te rankontre Cronnie. Mwen te tande bagay sa yo sou li, ke li te serye, toujou alè, men pafwa yon ti jan konfizyon sou entansyon li.

    Mwen te jwenn sa a vre jan li te yon mistè konplè pou mwen an premye. Apre mwen te mande alantou li, mwen te kenbe san patipri byen vit sou fason li te renmen opere. Koulye a, mwen pa ka imajine yon jou pase san li nan lavi mwen. Li fè Munden eksitan, ak asanse anpil chay sou zepòl mwen.

    Nan tout gravite, mwen santi mwen tankou mwen te sèlman grate sifas la ak sa mwen ka otomatize ak travay cron. Yo vrèman se yon devlopè pi bon zanmi. Si w ap itilize yon moun tankou CPanel nan jere sèvè ou, li bay yon koòdone pi plis zanmitay yo kreye crons. Ranpli ak meni desann pou minit, èdtan, jou, mwa, elatriye ki bati liy lan cron pou ou.

  5. 7

    Mwen definitivman wè sa a se yon bagay chak komèrsyaliz ta dwe lè l sèvi avèk ... Èske gen nenpòt ki moun ki ka bay sèvis sa a paske li son yon ti jan twò "techy"?

Ki sa ou panse?

Sit sa a sèvi ak Akismet diminye Spam. Aprann kijan kòmantè ou a trete.