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ə sistemlərimiz var. Bəziləri hər dəqiqə, bəziləri isə etdiklərindən asılı olaraq 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?

Cronun həqiqətən çalışması çə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 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

    Bir cron qurma mövzusunda yaxşı bir məqalə, crowjobs üçün yeni birisi üçün, bir cron qurmağın ən çətin hissəsi cronjob icra müddətini tapmaqdır və ilk cəhddə səhv bir interval əldə etmək çox rahatdır. Cronjoblarınız vaxta həssasdırsa, işin icra vəziyyəti barədə sizə məlumat verilməsi üçün vəziyyəti ə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çə ondan sonra bir istifadəçi interfeysi, verilənlər bazası və ingilis dilində sintaksis olmasını istərdiniz you'll

    İkincisi, cron, işin əvvəlki çağırışının tamamlanmasından asılı olmayaraq, işi göstərilən vaxtda işdən çıxaracaqdır. Beləliklə dəqiqədə bir dəfə 2 dəqiqə çəkən bir işi sürətlə eyni işin çoxuna səbəb olacaq.

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

    Bunlara bir neçə yolla müraciət etdim:
    - cron vasitəsilə tetiklenen tətbiqetmənin nəyin işlədilməli olduğunu təyin etmək üçün bir verilənlər bazasına baxmasını təmin edin. İstədiyinizdən asılı olaraq dəqiqədə və ya saatda bir dəfə çalışdırın
    - hər bir skriptin / tmp-də bir 'kilid' dosyası yaratmasını təmin edin və əgər varsa, yenidən başlamayın, istəməsəniz, bu işlərin təkrarlanmasının qarşısını alır.
    - skript kilid sənədini 1 saatdan artıq taparsa (və ya öldüyünüzə dair hər hansı bir şey varsa) bir e-poçt xəbərdarlığı göndərin
    - İşin uğursuz olması barədə skriptin e-poçt göndərilməsini təmin edin, beləliklə bir şeyin səhv olduğunu biləcəksiniz
    - Ehtiyaclarınız bir neçə skriptdən kənara çıxdıqda, Flux və ya ticarət planlayıcılar kimi çərçivələrə baxın

    Chris

  3. 4

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

  4. 5

    Cronnie ilə tanış olduğum ilk günü hələ də xatırlayıram. Onun haqqında hər zaman etibarlı, amma niyyətləri barədə bəzən bir az qarışıq olduğu barədə bir şey eşitmişdim.

    Əvvəlcə mənim üçün tam bir sirr olduğu üçün bunun doğru olduğunu gördüm. Ətrafında onun haqqında soruşduqdan sonra necə işləməyi xoşladığını kifayət qədər tez başa düşdüm. İndi həyatımda onsuz bir günün keçdiyini təsəvvür edə bilmirəm. Dünyanı həyəcanlı edir və bir çox yükləri çiyinlərimdən qaldırır.

    Bütün ciddilikdə, cron işləri ilə avtomatlaşdıra biləcəyim şeylə səthi cızdığımı hiss edirəm. Həqiqətən bir inkişaf etdirənin ən yaxşı dostudurlar. Serverinizi idarə etmək üçün CPanel kimi birisini istifadə edirsinizsə, kron yaratmaq üçün daha səmimi bir interfeys təmin edir. Sizin üçün cron xəttini quran dəqiqə, saat, gün, ay və s. Üçün açılan menyularla tamamlayın.

  5. 7

    Mən bunu mütləq hər marketoloqun istifadə etməsi lazım olan bir şey görürəm ... Biraz çox "texniki" səsləndiyindən bu xidməti göstərə biləcək birisi varmı?

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

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