Veb saytları Cron ilə Planlaşdırılmış Tapşırıqları Çalıştırabilir

saat

İşdə mütəmadi olaraq prosesləri icra edən bir sıra lazımsız izləmə sistemimiz var. Bəziləri hər dəqiqədə, bəziləri nə etdiklərinə görə gecə bir dəfə qaçırlar. Məsələn, 30 gün ərzində alış-veriş etməyən bütün müştərilərə kupon göndərmək üçün ixrac edən bir ssenari icra edə bilərik.

Bütün bunları əl ilə izləməyə çalışmaqdansa, avtomatik olaraq planlaşdırılan və icra olunan iş yerləri qurmaq daha asandır. Unix əsaslı sistemlərdə bu, Cron ilə həyata keçirilir. Nə etdiyinizi bilən insanlar üçün, hər hansı bir dezinformasiya atsam, məni və oxucuları öyrətməkdən çəkinməyin.

Təəssüf ki, tipik bir veb geliştirici Cron ilə heç tanış deyil. Olsalar da, veb hosting şirkətləri çox vaxt Cron-a giriş və ya dəstək vermirlər. Ev sahibim sonunculardan biridir - istifadə etməyinizə icazə verirlər, amma dəstəkləmirlər.

Cron nədir?

Cron Yunan dilində Chronos sözü ilə adlandırılmışdır vaxt. Cron, Crontab tərəfindən yığılmış tapşırıqları yerinə yetirmək üçün davamlı bir dövrədə işləyir (bəlkə də adına nişanıulator. Bu tapşırıqlar ümumiyyətlə Cronjobs adlanır və saytınızdakı skriptlərə müraciət edə bilər.

Cron Diaqramının İzahı

Crontab-ı necə qururam?

Cronu həqiqətən çalıştırmak çətin ola bilər, buna görə nə öyrəndim və bunu necə etdim Əgər əmsən:

  1. Twitter-i yoxlamaq üçün skriptimi qurdum API kiminsə cavab verdiyini görmək @ifsuck. Bu mesajları yenisini daxil edərək veb saytında saxladığım mesajlarla müqayisə etdim.
  2. Ssenari işlədikdən sonra İstifadəçinin ssenarini icra etməsinə icazə verdim (744) və skript istinadını Cronjob sənədimə əlavə etdim - daha sonra.
  3. Sonra SSH vasitəsilə veb saytıma daxil olmalı oldum. Bir Mac-da Terminalın açılması və yazılması lazım idi SSH istifadəçi adı@domain.com istifadəçi adı istifadə etmək istədiyim istifadəçi adı və domen veb saytdır. Sonra məndən istənildi və şifrəni verdim.
  4. Sonra serverdəki fayl adını və nisbi yolu yazaraq skripti əmr istəməsindən birbaşa işləməyə çalışdım: /var/www/html/myscript.php
  5. Düzgün işlədikdən sonra sənədin birinci sətrinə lazımi Unix kodunu əlavə etdim: #! / usr / bin / php -q . İnanıram ki, bu, Unix-ə skriptin icrası üçün PHP-dən istifadə etməsini tələb edir.
  6. Terminal əmr sətrində yazdım crontab (başqalarının yazması lazım ola bilər crontab-e) və enter düyməsini vurun ... və lazım olanlar bu idi!

Cronjob Faylınız üçün sintaksis

Yuxarıdakı # 2-yə gəldikdə, Cron, skriptlərinizin nə vaxt icra ediləcəyini təyin etmək üçün usta bir sxemdən istifadə edir. Əslində, bunu həqiqətən Cronfile-yə kopyalayıb yapışdıra bilərsiniz (ev sahibimdə yerləşir / var / spool / cron / istifadəçi adımla eyni fayl adı ilə).

# + —————- dəqiqə (0 - 59)
# | + ————- saat (0 - 23)
# | | + ———- ayın günü (1-31)
# | | | + ——- ay (1 - 12)
# | | | | + —- həftənin günü (0 - 6) (bazar = 0 və ya 7)
# | | | | |
* * * * * /var/www/html/myscript.php

Yuxarıda göstərilənlər hər dəqiqə ssenarimi icra edəcəkdir. Saatda bir dəfə işləməsini istəsəydim, saatdan neçə dəqiqə sonra istəməyimi istərdim, yəni 30 dəqiqəlik nöqtədə olsaydı:

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

Bu fayl üçün icazələri də yürütülebilir olaraq təyin etdiyinizə əmin olun! Sintaksisin, icazələrin və Terminal pəncərəsindən crontabın icrasının ən vacib amillər olduğunu gördüm. Hər dəfə faylı yenidən saxladığımda, sıfırlamağa ehtiyacım olan icazələrimi də tapardım!

ƏLAVƏ OLUNUB: İşlərin işləməsini təmin etmək istəyirsinizsə, sadəcə bir yol, verilənlər bazası sahəsini son dəfə skript işlədiyində yeniləməkdir. Daha az olursa, özünüzə göndərilən bir e-poçtu yaza bilərsiniz.

Əlavə Cron Resursları:

Cron istifadə edərək neçə işi avtomatlaşdıra bilərsən?

8 Şərhlər

  1. 1

    Kronun qurulması ilə bağlı yaxşı əhatə olunmuş məqalə, crojobs üçün yeni olan biri üçün cron quraşdırmanın ən çətin hissəsi cronjob icra intervalını tapmaqdır və ilk cəhddə səhv interval əldə etmək olduqca yaygındır. Əgər cronjobs vaxta həssasdırsa, işin icra vəziyyəti barədə məlumatlı olmanız üçün statusu əks etdirmək üçün bəzi kodları skriptə daxil etmək yaxşıdır.

  2. 2

    Salam Doug,

    Cron işləri ilə işləyərkən nəzərə alınmalı bir neçə şey.

    Birincisi, bir neçə onlarla sonra, arzulayacaqsınız ki, sizdə UI, verilənlər bazası və ingiliscə görünən sintaksis olsun 😉

    İkincisi, işin əvvəlki çağırışının tamamlanmasından asılı olmayaraq, cron işi müəyyən edilmiş vaxtda işə salacaq. Beləliklə, 2 dəqiqə çəkən bir işi dəqiqədə bir dəfə yerinə yetirmək tez bir zamanda çoxlu eyni işin qaçmasına səbəb olacaq.

    Bundan sonra, bir şey səhv getdikdə heç bir səhv hesabatı yoxdur, ona görə də öz səhv hesabatınızı əlavə etməlisiniz.

    Mən bunlara bir neçə yolla müraciət etdim:
    – nəyin işə salınmalı olduğunu müəyyən etmək üçün verilənlər bazasında cron vasitəsilə tətbiqi işə salın. İstədiyinizdən asılı olaraq dəqiqədə və ya saatda bir dəfə işlədin
    – hər bir skriptin /tmp-də 'kilid' faylı yaratmasını təmin edin və əgər varsa, yenidən başlamayın, bu, istəmirsinizsə, dublikat işlərin qarşısını alır
    – skript 1 saatdan çox köhnə kilid faylını tapsa (və ya öldüyünüzə işarə edən hər şey) e-poçt xəbərdarlığı göndərin
    – skriptin işin uğursuzluğu barədə e-poçt göndərməsini təmin edin ki, nəyinsə səhv getdiyini biləsiniz
    – Ehtiyaclarınız bir neçə skriptdən kənara çıxdıqda Flux və ya kommersiya planlaşdırıcıları kimi çərçivələrə baxın

    Chris

  3. 4

    Onu da əlavə edəcəyəm ki, əksər Linux/Unix sistemlərində “crontab -e” crontabınızı redaktə etmək üçün istifadə etdiyiniz şeydir. Düşünürəm ki, ev sahibiniz (Jumpline) təhlükəsizlik səbəbi ilə dəyişdirilmiş versiyadan istifadə edir.

  4. 5

    Kronni ilə tanış olduğum ilk günü hələ də xatırlayıram. Mən onun haqqında çox şey eşitmişdim, o, etibarlı idi, həmişə vaxtında idi, amma bəzən niyyətləri haqqında bir az çaşqınlıq yaradırdı.

    Mən bunu doğru hesab etdim, çünki o, əvvəlcə mənim üçün tam bir sirr idi. Ətrafdan onun haqqında soruşduqdan sonra onun əməliyyat etməyi xoşladığını tez başa düşdüm. İndi həyatımda onsuz bir gün keçdiyini təsəvvür edə bilmirəm. O, adi şeyləri həyəcanlandırır və çiyinlərimdən bir çox yükləri götürür.

    Bütün ciddiliklə, mən cron işləri ilə avtomatlaşdıra bildiklərimlə yalnız səthi cızmışam kimi hiss edirəm. Onlar həqiqətən tərtibatçıların ən yaxşı dostudurlar. Əgər serverinizi idarə etmək üçün CPanel kimi birini istifadə edirsinizsə, o, cronlar yaratmaq üçün daha dostcasına interfeys təqdim edir. Sizin üçün cron xəttini yaradan dəqiqə, saat, gün, ay və s. üçün açılan menyularla tamamlayın.

  5. 7

    Mən mütləq görürəm ki, bu, hər bir marketoloqun istifadə etməli olduğu bir şeydir... Bir az çox “texnoloji” səsləndiyi üçün bu xidməti təmin edə bilən varmı?

Siz nə düşünürsünüz?

Bu sayt spam azaldılması üçün Akismet istifadə edir. Yorumunuzun necə işləndiyini öyrənin.