Veb-saytlar Cron bilan rejalashtirilgan vazifalarni bajarishi mumkin

soat

Bizda ish jarayonlarini muntazam ravishda amalga oshiradigan bir qator ortiqcha monitoring tizimlari mavjud. Ba'zilar har daqiqada, ba'zilari nima qilishlariga qarab kechada bir marta yuguradilar. Masalan, biz 30 kun ichida xarid qilmagan xaridorlarga kupon yuborish uchun eksport qiladigan stsenariyni bajarishimiz mumkin.

Bularning barchasini qo'lda kuzatib borishga urinishdan ko'ra, avtomatik ravishda rejalashtirilgan va bajariladigan ish joylarini yaratish ancha osonroq. Unix-ga asoslangan tizimlarda bu Cron bilan amalga oshiriladi. Siz nima qilayotganingizni biladigan odamlar uchun, agar men biron bir dezinformatsiyani chiqarib yuborsam, menga va o'quvchilarga murojaat qiling.

Bu afsuski, lekin odatdagi veb-ishlab chiquvchi Cron bilan umuman tanish emas. Ular bo'lsa ham, veb-xosting kompaniyalari ko'pincha Cron-ga kirish yoki uni qo'llab-quvvatlamaydilar. Mening xostim bu ikkinchisidan biri - ular sizga foydalanishga ruxsat berishadi, lekin ular uni qo'llab-quvvatlamaydilar.

Cron nima?

cron yunoncha Chronos so'zi bilan nomlangan, ma'nosi vaqt. Cron Crontab tomonidan to'plangan (ehtimol shunday nomlangan) vazifalarni bajarish uchun doimiy tsiklda ishlaydi tabulator. Ushbu vazifalar odatda Cronjobs deb nomlanadi va saytingizdagi skriptlarga murojaat qilishi mumkin.

Cron diagrammasini tushuntirish

Crontab-ni qanday o'rnataman

Cron-ni aslida ishga tushirish qiyin bo'lishi mumkin, shuning uchun men nimani bilib oldim va buni qanday qildim Agar so'rg'ich bo'lsa:

  1. Twitter-ni tekshirish uchun skriptimni o'rnatdim API kimdir javob berganligini ko'rish uchun @ifsuck. Men ushbu xabarlarni veb-saytda saqlagan va yangilarini kiritgan xabarlar bilan taqqosladim.
  2. Skript ishlagandan so'ng, men foydalanuvchiga skriptni (744) bajarishi uchun ruxsat berdim va Cronjob faylimga skript havolasini qo'shdim - bu haqda keyinroq.
  3. Keyin SSH orqali veb-saytimga kirishim kerak edi. Mac-da, bu terminalni ochish va yozishni talab qildi SSH foydalanuvchi nomi@domain.com bu erda foydalanuvchi nomi men foydalanmoqchi bo'lgan foydalanuvchi nomi va domen veb-sayt edi. Keyin mendan so'rashdi va parolni berishdi.
  4. Keyin men serverdagi fayl nomini va nisbiy yo'lini yozib buyruq irodasidan to'g'ridan-to'g'ri skriptni ishga tushirishga harakat qildim: /var/www/html/myscript.php
  5. To'g'ri ishlagandan so'ng, faylning birinchi qatoriga kerakli Unix kodini qo'shdim: #! / usr / bin / php -q . Menimcha, bu Unix-ga PHP-dan skriptni bajarish uchun ishlatishi kerak.
  6. Terminal buyruq satrida men yozdim crontab (boshqalar yozishi kerak bo'lishi mumkin crontab -e) va enter tugmachasini bosing ... va buning uchun kerak bo'lgan narsa edi!

Cronjob fayli uchun sintaksis

Yuqoridagi # 2 ga kelsak, Cron sizning skriptlaringiz qachon bajarilishini aniqlash uchun mohirona sxemadan foydalanadi. Aslida, siz buni nusxalashingiz va Cronfile-ga qo'yishingiz mumkin (mening xostimda, u joylashgan / var / spool / cron / fayl nomi bilan mening foydalanuvchi nomim bilan bir xil).

# + —————- daqiqa (0 - 59)
# | + ————- soat (0 - 23)
# | | + ———- oy kuni (1 - 31)
# | | | + ——- oy (1 - 12)
# | | | | + —- haftaning kuni (0 - 6) (yakshanba = 0 yoki 7)
# | | | | |
* * * * * /var/www/html/myscript.php

Yuqorida keltirilganlar mening skriptimni har daqiqada bajaradi. Agar men uni soatiga bir marta ishlashini istasam, soatlab necha minut o'tgach, uni ishlashni xohlayman, agar u 30 daqiqada bo'lsa:

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

Ushbu faylga ruxsatlarni bajariladigan sifatida o'rnatganingizga ishonch hosil qiling! Terminal oynasidan sintaksis, ruxsatnomalar va crontab-ni bajarish eng muhim omil ekanligini topdim. Faylni har safar saqlaganimda, qayta tiklashni talab qiladigan ruxsatlarimni topardim!

YANGILASH: Agar siz ish joylarining ishlashini ta'minlashni istasangiz, oddiy usullardan biri bu ma'lumotlar bazasi maydonini oxirgi marta skript ishga tushirilishi bilan yangilashdir. Agar u kamdan-kam hollarda bo'lsa, shunchaki o'zingizning elektron pochtangizga skript yozishingiz mumkin.

Qo'shimcha Cron manbalari:

Cron-dan foydalanib qancha ishlarni avtomatlashtira olasiz?

8 Comments

  1. 1

    Cron-ni sozlash bo'yicha maqola, ish uchun yangi kelgan kishi uchun, kronni o'rnatishda eng qiyin narsa - bu cronjob-ning bajarilish oralig'ini aniqlash va birinchi navbatda noto'g'ri intervalni olish juda oson. Agar sizning cronjoblaringiz vaqtni sezgir bo'lsa, ishning bajarilish holati to'g'risida sizni xabardor qilish uchun vaziyatni aks ettirish uchun skriptga ba'zi kodlarni qo'shganingiz ma'qul.

  2. 2

    Salom Dag,

    Cron ishlarida ishlashda e'tiborga olish kerak bo'lgan ikkita narsa.

    Birinchidan, bir necha o'ndan so'ng, sizda interfeys, ma'lumotlar bazasi va ingliz tilidagi sintaksis mavjud bo'lishini xohlaysiz

    Ikkinchidan, avvalgi chaqiruv tugallangandan qat'iy nazar, cron belgilangan vaqtda ishdan bo'shatiladi. Shunday qilib, bir daqiqada bir marta 2 daqiqa davom etadigan ishni bajarish tezda bir xil ishning bajarilishiga olib keladi.

    Keyinchalik, biron bir narsa noto'g'ri bo'lsa, xato haqida xabar berishning yonida yo'q, shuning uchun siz o'zingizning xato hisobotingizni qo'shishingiz kerak.

    Men ularga bir necha usul bilan murojaat qildim:
    - cron orqali ishga tushirilgan dastur nimani ishga tushirish kerakligini aniqlash uchun ma'lumotlar bazasida ko'rib chiqilsin. Uni xohlaganingizga qarab daqiqada yoki soatda bir marta ishlating
    - har bir skriptda / tmp-da "qulflash" fayli yaratilsin va agar u mavjud bo'lsa, qaytadan boshlamang, agar xohlamasangiz, bu takrorlanadigan ishlarning oldini oladi
    - agar ssenariy 1 soatdan katta bo'lgan qulflangan faylni topsa (yoki o'lganingizni taxmin qiladigan narsa bo'lsa) elektron pochta orqali ogohlantirish yuboring
    - ishda muvaffaqiyatsizlikka uchraganligi uchun skriptni elektron pochta orqali yuboring, shunda biror narsa noto'g'ri bo'lib ketganini bilasiz
    - ehtiyojlaringiz bir nechta skriptlardan oshib ketganda, Flux yoki tijorat rejalashtiruvchilari kabi ramkalarni ko'rib chiqing

    Chris

  3. 4

    Ko'pgina Linux / Unix tizimlarida "crontab -e" - bu sizning crontabni tahrirlash uchun ishlatadigan narsadir. Menimcha, sizning uy egangiz (Jumpline) xavfsizlik nuqtai nazaridan o'zgartirilgan versiyadan foydalanmoqda.

  4. 5

    Kronni bilan uchrashgan birinchi kunim hali ham esimda. Men u haqida har doim o'z vaqtida ishonchli, ammo ba'zida uning niyatlari haqida biroz chalkashib ketadigan narsalar haqida eshitganman.

    Men buni haqiqat deb bildim, chunki u avvaliga men uchun to'liq sir edi. U haqida so'raganimdan so'ng, men uning qanday ishlashni yoqtirishini tezda bilib oldim. Endi, hayotim davomida u holda bir kun o'tishini tasavvur qila olmayman. U dunyoni hayajonli qiladi va ko'plab yuklarni elkamdan ko'taradi.

    Jiddiylik bilan, men cron ishlarida avtomatlashtirishim mumkin bo'lgan narsalar bilan faqat sirtni chizib qo'ygandekman. Ular haqiqatan ham ishlab chiquvchilarning eng yaxshi do'sti. Agar siz serveringizni boshqarish uchun CPanel kabi birovdan foydalansangiz, u kron yaratish uchun juda ham qulay interfeysni taqdim etadi. Siz uchun kron chizig'ini yaratadigan daqiqa, soat, kun, oy va hokazolarga ochiladigan menyularni to'ldiring.

  5. 7

    Men buni albatta har bir sotuvchi foydalanishi kerak bo'lgan narsaga ko'ryapman ... Bu xizmatni ko'rsatishi mumkin bo'lgan odam bormi, chunki bu juda "texnik" ko'rinadi?

Siz nima deb o'ylaysiz?

Ushbu sayt spamni kamaytirish uchun Akismet-dan foydalanadi. Fikringiz ma'lumotlarining qanday ishlashini bilib oling.