CodeGym /Kurslar /Python SELF AZ /schedule kitabxanasından istifadə edərək tapşırıqların cə...

schedule kitabxanasından istifadə edərək tapşırıqların cədvəl üzrə işə salınması

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Schedule kitabxanasına giriş

Bu mühazirədə biz, əsl mexanizm ustaları kimi, tapşırıqları cədvələ uyğun başlatmağı öyrənəcəyik ki, kodumuz bizim istəyimizə uyğun işləsin. Hazır olun, bu gün biz zamanı ram edəcəyik!

schedule kitabxanası — müəyyən edilmiş cədvələ uyğun funksiyaları başlatmaq üçün yüngül bir moduldur. Kodunuz müəyyən bir cədvələ uyğun işləməlidirsə, məsələn, hər gün saat 6-da məlumat toplamaq və ya gündəlik xatırlatmalar göndərmək lazımdırsa, schedule sizin üçün idealdır.

schedule kitabxanasının əsas üstünlükləri bunlardır:

  • Sadəlik: intuitiv başa düşülən interfeys, standart cron və ya threading həllərindən daha asandır.
  • Minimalizm: əlavə funksiyalar yoxdur - yalnız lazım olanlar.
  • Aydınlıq: cədvəl qurmaq üçün təbii dilə yaxın bir üsul.

Kitabxananın quraşdırılması

İşə başlamaq üçün schedule kitabxanasını quraşdırmaq lazımdır. Əksər Python kitabxanaları üçün olduğu kimi, burada da pip-dən istifadə edirik:

Bash
pip install schedule

İndi hər şey hazırdır, gəlin avtomatlaşdırma dünyasına dalış edək və schedule kitabxanasının gündəlik işlərinizi necə dəyişə biləcəyinə baxaq.

schedule kitabxanasının əsas metodları

schedule kitabxanası tapşırıqların müxtəlif vaxtlarda və fərqli tezliklərlə təyin edilməsi üçün metodlar təqdim edir:

  • every().day.at("HH:MM") — tapşırığın hər gün müəyyən vaxtda icrası.
  • every().hour — tapşırığın hər saatda icrası.
  • every().minute — tapşırığın hər dəqiqədə icrası.
  • every().week.at("HH:MM") — tapşırığın hər həftə müəyyən vaxtda icrası.
  • every().monday.at("HH:MM") — tapşırığın hər bazar ertəsi müəyyən vaxtda icrası.
  • every(10).seconds — tapşırığın hər 10 saniyədə (və ya başqa bir zaman intervalında) icrası.

2. Təkrarlanan tapşırıqların tənzimlənməsi

Gəlin sadə bir şeydən başlayaq — hər saat icra ediləcək bir funksiyanı planlayaq. Biz salamlayıcı bir mesajı göstərən sadə bir funksiya yaradacağıq və onu cədvəl üzrə işə salacağıq.

Nümunə: hər saat salamlaşma

Python

import schedule
import time

def say_hello():
    print("Salam! Biz saatlıq avtomatlaşdırmada işləyirik.")

# say_hello funksiyasını hər saat işə salırıq
schedule.every().hour.do(say_hello)

while True:
    # Vaxtı çatmış bütün tapşırıqları yerinə yetirir
    schedule.run_pending()
    time.sleep(1)

Bu qədər — sizin schedule ilə ilk skriptiniz! Bu nümunədə biz every().hour.do(say_hello) metodundan istifadə edirik ki, hər saat "Salam!" deyək. Maraqlıdı, düzdümü?

schedule.every().hour.do(say_hello) komandası say_hello funksiyasını icra etmir, əksinə onu cədvələ əlavə edir. Funksiyanın real çağırışı vaxtı çatanda baş verəcək — schedule.run_pending() kodu vasitəsilə çağırılacaq.

3. Daha mürəkkəb interval konfiqurasiyası

Bəs əgər biz tapşırıqları yalnız hər saatda deyil, məsələn, hər 10 dəqiqədən bir və ya həftənin müəyyən günlərində işə salmaq istəyiriksə? schedule kitabxanası ən çox yayılmış vaxt ifadələrini dəstəkləyir və siz onları çox böyük asanlıqla istifadə edə bilərsiniz.

Nümunə: tapşırığın hər 10 dəqiqədən bir işə salınması

Python

import schedule
import time

def task():
    print("Bu tapşırıq hər 10 dəqiqədən bir icra olunur.")

# Tapşırığın hər 10 dəqiqədən bir işə salınmasını planlaşdırırıq
schedule.every(10).minutes.do(task)

while True:
    schedule.run_pending() # Vaxtı yetişmiş bütün tapşırıqları işə salırıq
    time.sleep(1)

Nümunə: tapşırığın müəyyən günlərdə işə salınması

İndi isə həftənin xüsusi günlərində, məsələn, bazar ertəsi və çərşənbə günləri, lakin yalnız səhər 9-da icra olunacaq tapşırığı planlaşdırmağa çalışaq.

Python

import schedule
import time

def monday_wednesday_task():
    print("Bu tapşırıq bazar ertəsi və çərşənbə günləri səhər 9-da icra olunur.")

# Tapşırığın bazar ertəsi və çərşənbə günləri səhər 9-da işə salınması
schedule.every().monday.at("09:00").do(monday_wednesday_task)
schedule.every().wednesday.at("09:00").do(monday_wednesday_task)

while True:
    schedule.run_pending()
    time.sleep(1)

Gördüyünüz kimi, schedule kitabxanası müxtəlif vaxt ifadələrini, həftənin günlərini və işə salma vaxtını emal edir. Bu, işinizlə və ya planlaşdırılmış tədbirlərinizlə sinxronlaşdırılmış tapşırıqları planlaşdırmaq üçün inanılmaz dərəcədə əlverişlidir.

4. Müxtəlif vaxt şərtləri ilə tapşırıqların işlənməsi

Əgər skriptiniz bir neçə tapşırıq yerinə yetirirsə və onların hər birinin öz cədvəli varsa, schedule bununla da asanlıqla öhdəsindən gələ bilər. Məsələn, bir tapşırıq hər səhər, digəri isə cümə günləri işə düşə bilər.

Nümunə: fərqli tapşırıqları bir skriptdə birləşdirmək

Python

import schedule
import time

def morning_task():
    print("Sabahınız xeyir! Səhər tapşırığı üçün vaxtdır.")

def friday_task():
    print("Yaşasın, cümə! Cümə tapşırığı üçün vaxtdır.")

# Səhər tapşırıqları hər səhər saat 7:30-da
schedule.every().day.at("07:30").do(morning_task)

# Cümə tapşırıqları hər cümə saat 16:00-da
schedule.every().friday.at("16:00").do(friday_task)

while True:
    schedule.run_pending()
    time.sleep(1)

Təcrübə məsləhətləri və adi səhvlər

Təqdim olunan məsləhətləri nəzərə almaq çox vacibdir, əgər schedule vasitəsi ilə tapşırıqları avtomatlaşdırmaq istəyirsinizsə.

Əvvəlcə yadda saxlayın ki, schedule tapşırıqları əsas thread-də işə salır. Bu o deməkdir ki, əgər sizin tapşırıq uzun müddət alırsa və ya başqa tapşırıqların icrasını blok edə bilərsə, tapşırıqlar üçün multithreading və ya asinxron çağırışları düşünmək yaxşı olar.

İkincisi, əgər tapşırığınız dəqiq müəyyən edilmiş vaxtda icra olunmalıdır və bu kritikdirsə, əmin olun ki, cihazınız aktivdir və skript işləyir. Əgər skript dayandırılıb ya da cihaz sönüb, schedule işləməyəcək.

Və nəhayət, ən yayılmış səhv — schedule-dən itirilmiş tapşırıqları bərpa etməyi gözləməkdir. Təəssüf ki, əgər skriptiniz tapşırıq yerinə yetirilməli olanda işləmir idisə, schedule onu keçmişdə yerinə yetirməyəcək.

1
Опрос
Tarix və vaxt ilə iş,  39 уровень,  4 лекция
недоступен
Tarix və vaxt ilə iş
Tarix və vaxt ilə iş
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION