Uygulamamın kullanıcısını Celery beat ile periyodik crontab stili görevlerini başlatmasına/durdurmasına izin vermek istiyorum.Dinamik Program Çizelgesi Flask ile Yığın Yendi görevi
CELERYBEAT_SCHEDULE = {
'add-every-30-seconds': {
'task': 'app.email.add',
'schedule': timedelta(seconds=30),
'args': (16, 16)
},
}
CELERY_TIMEZONE = 'UTC'
sonra Kereviz yendi işçisi ile çalıştırın: benim yapılandırma dosyasında üzerinde
@celery.task
def add(x, y):
return x + y
: Şu anda
venv/bin/celery worker -A celery_worker.celery --loglevel=info
Ben Kereviz bu basit örnekle çalışan çırpın var
ile kereviz çalıştırmak
celery -A celery_worker.celery beat -s ~/Documents/cesco-automation/power/celerybeat-schedule
Ve mükemmel çalışıyor! Fakat program üzerinde daha fazla kontrol sahibi olmalıyım.
Ayrıca uygulama kabuklarımda bunu yapabilirim.
>>>add.apply_async([80,800],countdown=30)
>>> from datetime import datetime, timedelta
>>> tomorrow = datetime.now() + timedelta(days=1)
>>> add.apply_async(args=[10, 10], eta=tomorrow)
Bu harika, ama bir ev otomasyon uygulaması geliştiriyorum, bu yüzden de görevleri durdurmam gerekiyor. Bunu nasıl yaparım??
Ayrıca bir django özel zamanlayıcı sınıfları hakkında bahseden bu link bulduk. Tam olarak ihtiyacım olan şey bu. Celery docs'da, -S işaretinden bahseder, ancak sınıfı Flask uygulamasına doğru şekilde nasıl ekleyeceğimi bilmiyorum. Flask ile nasıl kullanabilirim?
Gerçekten Celery Beat'a ihtiyacım var mı? Crontab'ın başka bir seçeneği var mı? Crontab yeterince keskin görünmüyor.
Varsayılan kereviz zamanlayıcısı büyük ölçüde berbat. Saat dilimleriyle uğraşmaya bile başlamadım. Ben bir veritabanı scheduler kullanmak istiyorum, django http://celery.readthedocs.org/en/latest/userguide/periodic-tasks.html#using-custom-scheduler-classes – reptilicus
için aynı bakabilirim soru üzerine, ama nasıl çalışacağını bilmiyorum. Django zamanlayıcıyı Flask uygulamasında kullanabilir miyim? Nasıl? – CESCO
@CESCO, Merhaba, flask uygulamasında django scheduler kullanmayı denediniz mi? Eğer evet ise, lütfen –