Situs wéb Tiasa Ngajalankeun Tugas Anu Dijadwalkeun sareng Cron

jam

Kami gaduh sababaraha sistem monitoring anu kaleuleuwihi nalika damel anu rutin ngaéksekusi prosés. Sababaraha ngajalankeun unggal menit, sababaraha sakali wengi gumantung kana naon anu dilakukeun. Salaku conto, urang tiasa ngaéksekusi skrip anu ngekspor sadaya palanggan anu teu acan ngagaleuh dina 30 dinten kanggo ngirim kupon ka aranjeunna.

Daripada nyobian ngalacak sadayana ieu ku tangan, langkung gampang ngawangun padamelan anu sacara otomatis dijadwalkeun sareng dieksekusi. Dina sistem basis Unix, ieu dilakonan ku Cron. Kanggo anjeun anu terang naon anu anjeun lakukeun, kersa ngadidik kuring sareng pamiarsa upami kuring miceun disinformasi.

Hanjakal, tapi pamekar wéb anu has henteu terang sama sekali sareng Cron. Sanajan éta, perusahaan wéb hosting sering henteu nyayogikeun aksés, atanapi dukungan ti, Cron. Host kuring mangrupikeun anu terakhir - aranjeunna ngamungkinkeun anjeun nganggo, tapi aranjeunna henteu ngadukung.

Naon ari Cron?

Cron dingaranan kecap Yunani Chronos, hartosna waktu. Cron ngajalankeun loop anu teras-terasan pikeun ngajalankeun tugas-tugas anu dikumpulkeun ku Crontab (panginten dingaranan tabborok. Tugas-tugas éta biasana disebut Cronjobs, sareng tiasa ngarujuk skrip dina situs anjeun.

Cron Diagram Penjelasan

Kumaha kuring nyetél Crontab

Kengingkeun Cron leres-leres ngajalankeun tiasa nangtang, janten ieu anu kuring diajar sareng kumaha kuring ngalakukeun éta Upami Nguseup:

  1. Kuring nyetél skrip kuring pikeun mariksa Twitter API ningali naha aya anu ngawaler @ifsuck. Kuring ngabandingkeun pesen-pesen éta kana pesen anu parantos kuring simpen dina halaman wéb, ngalebetkeun anu énggal.
  2. Sakali skrip na jalan, kuring ngaktipkeun idin pikeun Pamaké ngaéksekusi skrip (744) sareng nambihan rujukan skrip kana file Cronjob kuring - langkung seueur deui engké.
  3. Kuring teras kedah lebet kana halaman wéb kuring ngalangkungan SSH. Dina Mac, éta nyandak Terminal muka sareng ngetik Ngaran pamaké SSH@domain.com dimana nami pangguna mangrupikeun nami pangguna anu kuring hoyong gunakeun sareng domain mangrupikeun halaman wéb. Kuring teras dipenta pikeun sareng masihan kecap akses.
  4. Kuring teras nyobian ngajalankeun skrip langsung ti command prompt ku ngetikkeun nami file sareng jalur relatif dina server: /var/www/html/myscript.php
  5. Sakali kuring tiasa damel leres, kuring nambihan kode Unix anu diperyogikeun dina baris kahiji file: #! / usr / bin / php -q . Kuring yakin ieu ngan saukur nyarios Unix pikeun ngamangpaatkeun PHP pikeun ngajalankeun skrip.
  6. Di jalur paréntah Terminal, kuring ngetik crontab (batur panginten kedah ngetik -e crontab) teras pencét enter ... sareng éta sadayana anu diperyogikeun!

Sintaksis pikeun File Cronjob anjeun

Patali sareng # 2 di luhur, Cron ngagunakeun skéma akalna pikeun nangtoskeun iraha naskah anjeun bakal dilaksanakeun. Nyatana, anjeun leres tiasa nyalin sareng némpelkeun ieu kana Cronfile anjeun (dina host kuring, éta ayana di / var / spool / cron / kalayan nami nami sami sareng nami pangguna kuring).

# + —————- menit (0 - 59)
# | + ————- jam (0 - 23)
# | | + ———- dinten bulan (1 - 31)
# | | | + ——- sasih (1 - 12)
# | | | | + —- dinten minggu (0 - 6) (Minggu = 0 atanapi 7)
# | | | | |
* * * * * /var/www/html/myscript.php

Di luhur bakal ngaéksekusi naskah kuring unggal menit. Upami kuring hoyong waé ngajalankeun sakali sajam, kuring ngan ukur nempatkeun sabaraha menit saatos jam éta kuring hoyong ngaji, janten upami éta dina tanda 30 menit:

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

Pastikeun anjeun nyetél idin kana file ieu salaku laksana ogé! Kuring mendakan yén sintaksis, idin, sareng ngaéksekusi crontab tina jandéla Terminal mangrupikeun hal anu paling penting. Unggal-unggal kuring hoyong nga-resave file na, kuring mendakan ijin kuring ogé kedah disetél deui!

UPDATE: Upami anjeun hoyong mastikeun padamelan parantos jalan, hiji cara ngan saukur nyaéta ngamutahirkeun lapangan database kalayan terakhir waktos skrip na dijalankeun. Upami langkung jarang, anjeun ngan ukur tiasa ngadamel skrip email anu dikirim ka anjeun nyalira.

Sumber Daya Cron Tambahan:

Sabaraha padamelan anu anjeun tiasa ngajadikeun otomatis nganggo Cron?

8 Komentar

  1. 1

    Tulisan anu saé pikeun nyiapkeun cron, pikeun anu énggal pikeun crojobs, bagian anu paling hese dina nyetél cron nyaéta milarian interval pelaksanaan cronjob, sareng rada sering kéngingkeun interval anu salah dina mimiti dicobian. Upami cronjobs anjeun sénsitip waktos, langkung saé nyertakeun sababaraha kode dina skrip pikeun ngaluarkeun status sahingga anjeun tetep ngawartosan status palaksanaan padamelan.

  2. 2

    Hai Doug,

    Sababaraha hal anu kedah diperhatoskeun nalika damel sareng padamelan cron.

    Mimiti, saatos sababaraha belasan, anjeun bakal hoyong anjeun gaduh UI, database sareng sintaksis anu katingali ku bahasa inggris 😉

    Kadua, cron bakal mecat padamelan dina waktos anu parantos ditangtoskeun, henteu paduli naha paménta tiheula padamelan parantos réngsé. Janten ngajalankeun padamelan sakali menit anu peryogi 2 menit bakal gancang ngakibatkeun seueur padamelan anu sami dijalankeun.

    Teras, teu aya gigireun ngalaporkeun kasalahan nalika aya anu lepat, janten anjeun kedah nambihan ngalaporkeun kasalahan anjeun nyalira.

    Kuring parantos nyarios ieu dina sababaraha cara:
    - parantoskeun aplikasi dipicu via cron look dina database kanggo nangtoskeun naon anu kedah dijalankeun. Ngajalankeun sakali menit atanapi jam gumantung kana naon anu anjeun pikahoyong
    - Sanggakeun unggal skrip ngadamel file 'konci' dina / tmp sareng upami aya, entong mimitian deui, ieu nyegah duplikat padamelan upami anjeun teu hoyong aranjeunna
    - upami skrip mendakan file konci langkung lami ti 1 jam (atanapi naon waé anu nunjukkeun anjeun maot) kirim peringatan email
    - kéngingkeun skrip ngirim email ngeunaan kagagalan padamelan janten anjeun terang aya anu lepat
    - tingali kerangka sapertos Flux atanapi penjadwal komérsial nalika kabutuhan anjeun ngalangkungan sababaraha skrip

    Chris

  3. 4

    Kuring ogé bakal nambihan yén dina kaseueuran sistem Linux / Unix, "crontab -e" nyaéta anu anjeun anggo pikeun ngédit crontab anjeun. Jigana host anjeun (Jumpline) nganggo versi anu dirobih ku alesan kaamanan.

  4. 5

    Kuring masih émut dinten mimiti kuring patepung sareng Cronnie. Kuring kantos nguping perkawis anjeunna, yén anjeunna tiasa diandelkeun, teras-terasan dina waktosna, tapi kadang-kadang rada lieur ngeunaan pamaksadanna.

    Kuring mendakan ieu leres sabab anjeunna mangrupikeun misteri anu lengkep pikeun kuring mimitina. Saatos naroskeun perkawis anjeunna, kuring cekap gancang kumaha anjeunna resep beroperasi. Ayeuna, kuring henteu tiasa ngabayangkeun hiji dinten saatos tanpa dirina dina kahirupan kuring. Anjeunna ngajantenkeun duniawi pikaresepeun, sareng angkat seueur beban tina taktak kuring.

    Dina sagala kaseriusan, kuring rumaos kuring ngan ukur ngorejat permukaan sareng naon anu kuring tiasa ngajadikeun otomatis ku padamelan cron. Aranjeunna leres-leres mangrupikeun sahabat pangembang. Upami anjeun nganggo batur sapertos CPanel pikeun ngatur sérver anjeun, éta nyayogikeun antarmuka anu langkung ramah pikeun nyiptakeun crons. Lengkep sareng ménu turun pikeun menit, jam, dinten, bulan, sareng sajabana anu ngawangun garis cron pikeun anjeun.

  5. 7

    Kuring pasti ningali ieu mangrupikeun hal anu kedah dianggo ku unggal pamasar ... Naha aya anu tiasa nyayogikeun jasa ieu kusabab éta saéna rada "bijil"?

Naon anu anjeun pikirkeun?

Situs migunakeun Akismet pikeun ngurangan spam. Diajar kumaha komentar data anjeun diolah.