Mahimo sa mga Website ang Pagpadagan sa Giiskedyul nga mga Buluhaton uban ang Cron

orasan

Adunay kami usa ka daghang mga sobra nga sistema sa pag-monitor sa trabahoan nga kanunay naghimo og mga proseso. Ang uban nagdagan matag minuto, ang uban kausa sa usa ka gabii depende sa ilang gibuhat. Pananglitan, mahimo namon ipatuman ang usa ka iskrip nga mag-eksport sa tanan nga mga kustomer nga wala makapalit sa 30 ka adlaw aron mapadalhan sila usa ka kupon.

Kaysa pagsulay sa pagsubay sa tanan nga kini pinaagi sa kamut, labi ka kadali ang pagtukod mga trabaho nga awtomatikong gitakda ug gipatuman. Sa mga sistema nga nakabase sa Unix, natapos kini sa Cron. Alang kaninyong mga tawo nga nahibal-an kung unsa ang inyong gibuhat, gawasnon nga tudloan ako ug ang mga magbasa kung akong gilabog ang bisan unsang disinformation.

Malas kini, apan ang kasagarang web developer dili gyud pamilyar sa Cron. Bisan kung sila, ang mga kompanya sa web hosting kanunay dili magahatag pagsulud, o suporta sa, Cron. Ang akong host mao ang usa sa ulahi - gitugotan ka nila nga gamiton kini, apan dili nila kini gisuportahan.

Unsa man si Cron?

Cron ginganlan alang sa pulong Griyego nga Chronos, nga nagpasabut panahon. Ang Cron nagpadagan sa usa ka padayon nga loop aron mapadagan ang mga buluhaton nga natipon sa Crontab (tingali gipangalanan tabulator Kadto nga mga buluhaton kasagarang gipunting ingon Cronjobs, ug mahimo nga mag-refer sa mga script sa imong site.

Pagpasabut sa Cron Diagram

Giunsa nako pag-setup ang Crontab

Ang pagpadagan sa Cron sa tinuud nga pagdagan mahimo nga mahagiton, busa ania ang nahibal-an ko ug kung giunsa ko kini gihimo Kung Pagsuso:

  1. Gi-set up nako ang akong script aron masusi ang Twitter API aron mahibal-an kung adunay nagtubag sa @ifsuck. Gitandi nako ang kana nga mga mensahe sa mga mensahe nga na-save ko na sa website, pagsulud bisan unsang bag-o.
  2. Sa diha nga nagtrabaho na ang script, gipalihok nako ang mga permiso alang sa User nga ipatuman ang script (744) ug idugang ang reperensya sa script sa akong file nga Cronjob - labi na sa ulahi.
  3. Kinahanglan ko nga mag-login sa akong website pinaagi sa SSH. Sa usa ka Mac, gikuha ang pagbukas sa Terminal ug pag-type SSH username@domain.com diin ang username mao ang username nga gusto nako gamiton ug domain ang website. Giaghat ko dayon ug gihatag ang password.
  4. Gisulayan nako pagdagan ang script nga diretso gikan sa command prompt pinaagi sa pag-type sa filename ug relatibong agianan sa server: /var/www/html/myscript.php
  5. Sa higayon nga kini nakatrabaho nako nga tama, gidugang nako ang kinahanglan nga Unix code sa unang linya sa file: #! / usr / bin / php -q . Nagtuo ako nga giingon ra niini sa Unix nga magamit ang PHP aron mapatuman ang script.
  6. Sa linya sa pagmando sa Terminal, nag-type ko crontab (ang uban tingali kinahanglan nga magtipo crontab -e) ug naigo nga pagsulud… ug kana ra ang gikinahanglan!

Syntax alang sa imong Cronjob File

Bahin sa # 2 sa taas, gigamit ang Cron usa ka makinaadmanon nga laraw alang sa pagtino kanus-a ipatuman ang imong mga script. Sa tinuud, mahimo nimo gyud nga kopyahon ug i-paste kini sa imong Cronfile (sa akong host, naa kini sa / var / spool / cron / nga adunay filename parehas sa akong username).

# + —————- minuto (0 - 59)
# | + ————- oras (0 - 23)
# | | + ———- adlaw sa bulan (1 - 31)
# | | | + ——- bulan (1 - 12)
# | | | | + —- adlaw sa semana (0 - 6) (Domingo = 0 o 7)
# | | | | |
* * * * * /var/www/html/myscript.php

Ipatuman sa taas ang akong iskrip matag minuto. Kung gusto ko lang kini modagan kausa sa usa ka oras, ibutang ra nako kung pila ka minuto pagkahuman sa oras nga gusto nako kini padaganon, mao nga kung naa sa 30 minuto nga marka:

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

Siguruha nga imong gitakda ang mga pagtugot sa kini nga file ingon maipatuman usab! Nahibal-an nako nga ang syntax, permissions, ug executing crontab gikan sa window sa Terminal mao ang labing hinungdanon nga mga hinungdan. Sa matag higayon nga ibalhin ko pag-usab ang file, makit-an nako ang akong mga pagtugot nga kinahanglan usab ma-reset!

UPDATE: Kung gusto nimong masiguro nga ang mga trabaho ningdagan, usa ka paagi mao ang pag-update sa usa ka basakan sa database sa katapusan nga higayon nga gipadagan ang script. Kung dili kaayo kanunay, mahimo ka lang mag-script sa usa ka email nga gipadala sa imong kaugalingon.

Dugang nga Mga Kapanguhaan sa Cron:

Pila ka mga trabaho ang mahimo nimo nga magamit nga paggamit sa Cron?

8 Comments

  1. 1

    Maayo nga natabunan nga artikulo sa pag-set up sa usa ka cron, alang sa usa ka tawo nga bag-o sa mga crojobs, ang labing lisud nga bahin sa pag-set up sa usa ka cron aron mahibal-an ang interval sa pagpatuman sa cronjob, ug dali nga makakuha og sayup nga agwat sa una nga pagsulay. Kung ang imong mga cronjobs sensitibo sa oras, maayo nga iupod ang pipila ka mga code sa script aron igawas ang kahimtang aron mapahibalo ka bahin sa kahimtang sa pagpatuman sa trabaho.

  2. 2

    Kumusta Doug,

    Daghang mga butang nga gikonsiderar kung nagtrabaho uban ang mga trabaho sa cron.

    Una, pagkahuman sa pila ka dosena, gipangandoy nimo nga adunay ka usa ka UI, usa ka database ug sama sa ingles nga pagtan-aw sa syntax 😉

    Ikaduha, papahawaon sa cron ang trabaho sa tinukoy nga oras, dili igsapayan kung nakumpleto na ang miaging pag-awhag sa trabaho. Mao nga ang pagpadagan sa usa ka trabaho kausa sa usa ka minuto nga molungtad og 2 minuto dali nga magdala sa daghang parehas nga padagan sa trabaho.

    Sunod, wala’y sunod sa wala’y pagtaho sa sayup kung adunay sayup nga nahimo, busa kinahanglan nimo nga idugang ang imong kaugalingon nga pagreport sa sayup.

    Gisulti ko kini sa daghang paagi:
    - gipalihok ang aplikasyon pinaagi sa pagtan-aw sa cron sa usa ka database aron mahibal-an kung unsa ang kinahanglan nga pagdagan. Dagan kini kausa sa usa ka minuto o oras depende sa imong gusto
    - Himua ang matag script nga maghimo usa ka 'lock' file sa / tmp ug kung adunay kini, ayaw pagsugod pag-usab, mapugngan niini ang mga doble nga trabaho kung dili nimo gusto kini
    - kung makit-an sa script ang lock file nga mas tigulang sa 1 oras (o kung unsa man ang nagsugyot nga ikaw namatay) ipadala ang usa ka alert sa email
    - ipadala ang script sa email sa pagkapakyas sa trabaho aron mahibal-an nimo nga adunay sayup nga nahimo
    - tan-awa ang mga frameworks sama sa Flux o mga iskedyul sa komersyo kung ang imong mga panginahanglan molapas sa pipila ka mga script

    Chris

  3. 4

    Idugang usab nako kana sa kadaghanan sa mga sistema sa Linux / Unix, ang "crontab -e" ang imong gigamit aron ma-edit ang imong crontab. Sa akong hunahuna ang imong host (Jumpline) naggamit us aka bersyon alang sa mga hinungdan sa seguridad.

  4. 5

    Nahinumdom pa ko sa una nga adlaw nga nahimamat nako si Cronnie. Nakadungog ako mga butang bahin kaniya, nga siya masaligan, kanunay sa oras, apan usahay medyo nakalibug sa iyang mga katuyoan.

    Nakita ko kini nga tinuod tungod kay siya usa ka kompleto nga misteryo sa una. Pagkahuman sa pagpangutana sa palibot bahin kaniya, dali ra nako nga nahibal-an kung giunsa niya gusto nga mag-operate. Karon, dili ko mahunahuna ang usa ka adlaw nga nangagi nga wala siya sa akong kinabuhi. Gihimo niya nga makapaukyab ang kalibutanon, ug gitaas ang daghang mga palas-anon sa akong abaga.

    Sa tanan nga pagkaseryoso, gibati nako nga gisulat ra nako ang nawong sa mahimo nako nga pag-awtomatiko sa mga trabaho sa cron. Tinuod nga sila usa ka labing suod nga higala sa mga nag-develop. Kung naggamit ka us aka tawo sama sa CPanel aron madumala ang imong server, naghatag kini labi ka labi ka mahigalaon nga interface aron makahimo mga cron. Kompleto ang mga drop down menu alang sa minuto, oras, adlaw, bulan, ug uban pa nga naggama sa linya sa cron alang kanimo.

  5. 7

    Siguruha ko nga nakita nga kini us aka butang nga kinahanglan gamiton sa matag tigpamaligya ... Adunay ba bisan kinsa nga makahatag sa kini nga serbisyo tungod kay kini daw medyo "makulit"?

Unsay imong hunahuna?

Kini nga site naggamit sa Akismet sa pagpakunhod sa spam. Hibal-i kon giunsa ang pagproseso sa datos sa imong komento.