Python Celery Beat Kurulumu ve Kullanımı

0 Antworten 2 Aufrufe
·
Teilnehmer
Themenersteller #1
Celery, Python tabanlı asenkron görev kuyruğu ve zamanlama sistemi olup, özellikle zamanlanmış görevleri planlamak ve yürütmek için Celery Beat modülü vazgeçilmezdir. Bu thread'de, Celery Beat’in kurulumundan yapılandırmasına ve temel kullanım örneklerine kadar detaylı bir anlatım sunacağım.


İlk aşamada, Celery ve Beat modüllerinin sisteminizde düzgün çalışması için gerekli paketlerin yüklenmesi gerekir. Genellikle, aşağıdaki komutlar kullanılır:

CODE
1pip install celery


Celery, genellikle Redis veya RabbitMQ gibi mesaj kuyruğu altyapısı ile birlikte kullanılır. Redis tercih edilirse, öncelikle Redis’in kurulu ve çalışır durumda olması gerekir. Ardından, celery.py adında bir yapılandırma dosyası oluşturmak iyi bir pratiktir:

CODE
1234567891011121314151617181920212223
from [b]future[/b] import absolute_import
import os
from celery import Celery

[b]Çalışma ortamını belirle[/b]
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proje_adi.settings')

app = Celery('proje_adi')

[b]Redis kullanımıyla konfigürasyon[/b]
app.conf.broker_url = 'redis://localhost:6379/0'
app.conf.result_backend = 'redis://localhost:6379/0'

[b]Zamanlanmış görevleri tanımlama[/b]
app.conf.beat_schedule = {
    'örnek-görev': {
        'task': 'app.tasks.örnek_görev',
        'schedule': 300.0,  # Her 5 dakikada bir
    },
}

app.autodiscover_tasks()


Burada, beat_schedule parametresi ile zamanlanmış görevleri belirtiyoruz. schedule değeri saniye cinsinden olup, örneğin 300 saniye her 5 dakikayı temsil eder.

Çalıştırma aşamasında, Celery worker ve Beat süreçlerini ayrı terminal veya arka planda başlatmak gerekir:

CODE
12
celery -A proje_adi worker --beat --loglevel=info


Alternatif olarak, iki ayrı terminalde şu komutlarla da başlatabilirsiniz:

  • Worker: celery -A proje_adi worker --loglevel=info
  • Beat: celery -A proje_adi beat --loglevel=info


Celery Beat, zamanlanmış görevleri belirlenmiş aralıklarla tetiklemek dışında, Django admin paneli veya diğer araçlar aracılığıyla görevleri dinamik olarak yönetmenize de olanak tanır. Ancak, bu yapılandırmanın güvenli ve stabil çalışması için, görevlerin ve schedule ayarlarının dikkatli belirlenmesi gerekir.

Sonuç olarak, Celery Beat kurulumu ve temel kullanımı, uygun mesaj kuyruğu altyapısı ve yapılandırmayla oldukça esnek ve güçlü bir zamanlama sistemi sağlar. Bu altyapıya uygun görevleri planlayarak, uygulamanızın zaman duyarlı işlemlerini otomatikleştirebilirsiniz.

Sie müssen angemeldet sein, um zu antworten.

0 Zitate ausgewählt