Situs Web Bisa Mbukak Tugas Jadwal karo Cron

jam

Kita duwe sawetara sistem pemantauan sing keluwih sing kerja kanthi rutin nindakake proses. Ana sing mlayu saben menit, sawetara uga saben wengi gumantung karo apa sing ditindakake. Contone, kita bisa nglakokake skrip sing ngekspor kabeh pelanggan sing durung tuku sajrone 30 dina kanggo ngirim kupon.

Daripada nyoba nglacak kabeh kanthi tangan, luwih gampang nggawe proyek sing dijadwal lan dieksekusi kanthi otomatis. Ing sistem adhedhasar Unix, iki bisa ditindakake karo Cron. Kanggo sampeyan sing ngerti apa sing sampeyan lakoni, wenehi wulangan bebas babagan kula lan para pamiarsa yen mbuwang informasi.

Sayang banget, nanging pangembang web sing khas ora kenal karo Cron. Sanajan wis ana, perusahaan hosting web asring ora nyedhiyakake akses menyang, utawa dhukungan saka, Cron. Hostku minangka salah siji sing nomer loro - dheweke ngidini sampeyan nggunakake, nanging ora ndhukung.

Cron iku opo?

cron diarani kanggo tembung Yunani Chronos, tegese wektu. Cron mbukak loop terus-terusan kanggo mbukak tugas sing dikumpulake dening Crontab (bisa uga dijenengi tabulator Tugas kasebut biasane diarani Cronjobs, lan bisa ngrujuk skrip ing situs sampeyan.

Katrangan Diagram Cron

Kepiye carane nyiyapake Crontab

Nggawe Cron supaya bisa mlaku bisa uga nantang, mula iki sing dakkerteni lan kepiye carane nindakake Yen Nyedhot:

  1. Aku nyiyapake skrip kanggo mriksa Twitter API kanggo ndeleng apa ana sing wis mangsuli @dewahoya. Pesen sing dibandhingake karo pesen sing wis dak simpen ing situs web, ngetik pesen anyar.
  2. Sawise skrip digunakake, aku ngaktifake idin kanggo Pangguna kanggo nglakokake skrip (744) lan nambah referensi skrip menyang file Cronjob - luwih mengko.
  3. Aku banjur kudu mlebu situs web liwat SSH. Ing Mac, sing mbukak Terminal lan ngetik Jeneng panganggo SSH@domain.com jeneng panganggo yaiku jeneng pangguna sing pengin digunakake lan domain yaiku situs web. Aku banjur dijaluk lan menehi sandhi.
  4. Aku banjur nyoba mbukak skrip langsung saka command prompt kanthi ngetik jeneng filename lan path relatif ing server: /var/www/html/myscript.php
  5. Sawise bisa digunakake kanthi bener, aku nambah kode Unix sing dibutuhake ing baris pisanan file: #! / usr / bin / php -q . Aku percaya iki mung ngandhani Unix kanggo nggunakake PHP kanggo nglakokake skrip.
  6. Ing baris perintah Terminal, aku ngetik crontab (wong liya bisa uga kudu ngetik crontab -e) banjur tekan enter… lan kabeh iku dibutuhake!

Sintaks kanggo File Cronjob sampeyan

Gegayutan karo nomer 2 ing ndhuwur, Cron nggunakake skema cerdas kanggo nemtokake kapan skrip sampeyan bakal dileksanakake. Nyatane, sampeyan pancen bisa nyalin lan nempel ing Cronfile (ing hostku, dununge ing / var / spool / cron / nganggo jeneng berkas padha karo jeneng pangguna).

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

Ing ndhuwur bakal nglakokake skripku saben menit. Yen aku mung pengin mlaku sepisan sejam, aku luwih becik menehi menit sawise jam sing dakkarepake supaya bisa mlaku, mula yen ana ing tandha 30 menit:

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

Sampeyan manawa sampeyan wis ngidini idin menyang file iki supaya bisa dieksekusi! Aku nemokake manawa sintaks, ijin, lan nglakokake crontab saka jendela Terminal minangka faktor sing paling penting. Saben aku nyimpen file maneh, aku uga bakal nemokake ijin sing kudu disetel maneh!

UPDATE: Yen sampeyan pengin nggawe proyek mlaku, salah sawijining cara yaiku nganyari lapangan database kanthi skrip pungkasan. Yen luwih jarang, sampeyan mung kudu nulis email sing dikirim menyang sampeyan dhewe.

Sumber daya Cron Tambahan:

Pira proyek sing bisa digunakake kanthi otomatis nganggo Cron?

8 Komentar

  1. 1

    Artikel sing paling apik babagan nyiyapake cron, kanggo sing anyar kanggo crojobs, bagean sing paling angel kanggo nyiyapake cron yaiku ngerteni interval eksekusi cronjob, lan luwih gampang entuk interval sing salah nalika nyoba pisanan. Yen cronjobs sampeyan sensitif banget, luwih becik nyakup sawetara kode ing skrip kanggo mbatalake status supaya sampeyan tetep menehi informasi babagan status eksekusi kerja.

  2. 2

    Hai Doug,

    Sawetara prekara sing kudu dipikirake nalika nggarap proyek cron.

    Kaping pisanan, sawise sawetara lusin, sampeyan pengin duwe UI, database lan sintaks sing katon inggris 😉

    Kapindho, cron bakal ngilangi proyek kasebut ing wektu sing wis ditemtokake, ora preduli manawa sadurunge ngundang proyek kasebut rampung. Dadi, nyambut gawe sepisan menit sing mbutuhake 2 menit bakal cepet lumaku kanthi kerja sing padha.

    Sabanjure, ora ana kesalahan sing nglaporake yen ana kesalahan, mula sampeyan kudu nambah laporan kesalahan dhewe.

    Aku wis ngatasi sawetara cara:
    - nduwe aplikasi sing dipicu liwat tampilan cron ing basis data kanggo nemtokake apa sing kudu mbukak. Jalanake sepisan menit utawa jam, gumantung karo apa sing sampeyan karepake
    - Supaya saben skrip nggawe file 'kunci' ing / tmp lan yen ana, aja miwiti maneh, iki ngalangi proyek duplikat yen sampeyan ora pengin
    - yen skrip nemokake file kunci luwih saka 1 jam (utawa apa wae sing ateges sampeyan tilar donya) kirim tandha email
    - kirim skrip ngirim email amarga gagal proyek dadi sampeyan ngerti ana sing salah
    - deleng kerangka kerja kaya Flux utawa penjadwal komersial yen kabutuhan sampeyan ngluwihi sawetara skrip

    Chris

  3. 4

    Aku uga bakal nambahake ing sistem Linux / Unix sing paling akeh, "crontab -e" yaiku sing sampeyan gunakake kanggo ngedit crontab. Aku ngira host sampeyan (Jumpline) nggunakake versi sing diowahi kanggo alasan keamanan.

  4. 5

    Aku isih kelingan dina pisanan ketemu Cronnie. Aku wis ngrungokake babagan dheweke, dheweke pancen bisa dipercaya, mesthi waktune, nanging kadhang kala mbingungake babagan kekarepane.

    Aku ngerteni iki bener amarga dheweke dadi misteri lengkap dhisik. Sawise takon babagan dheweke, aku nate nyedhaki kepiye carane dheweke seneng operasi. Saiki, aku ora bisa mbayangake dina sing bakal daklakoni tanpa dheweke. Dheweke nggawe mundane nyenengake, lan ngangkat akeh beban ing pundhakku.

    Ing kabeh rasa serius, rasane aku mung bisa nggoreng permukaan kanthi apa sing bisa dakotomatisasi karo proyek cron. Dheweke pancen minangka kanca sing paling apik kanggo pangembang. Yen sampeyan nggunakake wong kaya CPanel kanggo ngatur server, bakal menehi antarmuka sing luwih grapyak kanggo nggawe panggunaan. Lengkap karo menu drop-down kanggo menit, jam, dina, wulan, lsp. Sing nggawe garis cron kanggo sampeyan.

  5. 7

    Aku pancen ngerti apa iki sing kudu digunakake para pemasar ... Apa ana sing bisa nyedhiyakake layanan iki amarga keprungu "teknis"?

Apa sampeyan mikir?

Situs iki nggunakake Akismet kanggo ngurangi spam. Sinau babagan proses data sampeyan.