MySQL
ile kereviz kullanıyorum. Görev kimliğini bir veritabanında veya bir kereviz task
değişkeninde düz bir tam sayı olarak saklamak istiyorum. Bunu nasıl yapabilirim?Her kereviz görevi için bir görev kimliğinin saklanması
cevap
Neden bir kereviz görev modeli oluşturmuyorsunuz ve bu modele bir kereviz görevi kimliği kaydetmiyorsunuz? Sonra
class CeleryModel(models.Model):
celery_task_id = models.CharField(max_length = 50, unique=True)
:
def some_celery_task():
result = celery_task.delay()
celery_task = CeleryModel(celery_task_id = result.id)
celery_task.save() # added save line
Kişisel tamsayı değeri şöyle olur: celery_task.id
gerçek, benzersiz celery_task_id ile haberleşmek için.
GÜNCELLEME: Başka bir yol ...
İlk python manage.py inspectdb > inspectdb.py
. Bu dosya içerisinde bulacaksınız:
class CeleryTaskmeta(models.Model):
id = models.IntegerField(primary_key=True)
task_id = models.CharField(max_length=765, unique=True)
status = models.CharField(max_length=150)
result = models.TextField(blank=True)
date_done = models.DateTimeField()
traceback = models.TextField(blank=True)
hidden = models.IntegerField()
meta = models.TextField(blank=True)
class Meta:
db_table = u'celery_taskmeta'
İleri, python manage.py startapp celery_model
. Bu dosyayı models.py dosyasına koyun. Güney kullanıyorum, bu yüzden son adımım python manage.py convert_app celery_model
olacaktır. Ancak, gereksizdir. Artık bu kereviz veri tabanına django seviyesine erişiminiz var ve her görev için birincil anahtarı tamsayı değeriniz olarak okuyabilirsiniz. Örn
>>> ct = CeleryTaskmeta.objects.get(id=1)
>>> for k,v in ct.__dict__.items(): print k,v
...
status SUCCESS
task_id 2fa95f24-7640-434c-9fef-0732ac1d23c7
date_done 2013-02-17 19:22:56+00:00
traceback None
_state <django.db.models.base.ModelState object at 0x10263fa90>
meta eJxrYKotZAzlSM7IzEkpSs0rZIotZC7WAwBREgb9
result gAJLBC4=
hidden 0
id 1
Birisi akıllı Sana datatable kurcalamak istiyorum sanmıyorum çünkü CeleryTaskmeta
salt okunur modelini nasıl bilemez.
GÜNCELLEME: Sorunuzun son kısmına:
>>> from celerytest.tasks import add
>>> result = add.delay()
>>> result.int_id = 1
>>> for k,v in result.__dict__.items(): print k,v
...
parent None
app <Celery default:0x10264df10>
task_name celerytest.tasks.add
int_id 1
id 01503afd-d196-47af-8e10-e7dc06603cfc
backend <djcelery.backends.database.DatabaseBackend object at 0x1026842d0>
kereviz görev Kimliğini almak için görev başlatıldığında ben aşağıdakileri yapın:
my_task içinde bir yöntemdirprocess_task = my_task.apply_async(args=[args])
task_id = process_task.task_id
tasks.py
- 1. Kereviz - başka bir görev
- 2. Kereviz görevi yürütülüyor
- 3. Django. Basit Kereviz görevi çalışmıyor
- 4. Django Kereviz Görev
- 5. kereviz görevi eta kapalı, rabbitmq
- 6. RabbitMQ'da kereviz görevi önceliği için geçici çözüm?
- 7. delete Görev/PeriodicTask kereviz içinde
- 8. Görevi her zaman verilog
- 9. Kereviz içinde sonlandırılırsa periyodik bir görev nasıl alınır?
- 10. Görev Django-kereviz kullanmak ve böyle bir görev var
- 11. Kereviz neden zincirdeki ilk görevi yürütüyor?
- 12. Bu görevi içe aktarma sırasında bir Kereviz görevini yürütme
- 13. python kereviz maksimum görev başına çocuk ayarı varsayılan
- 14. Kereviz için geri arama apply_async
- 15. Camunda özel görev listesi - tüm görevi tamamlama
- 16. Kereviz, belirli görev adı için tüm görevler için görev durumu nasıl edinilir?
- 17. Kereviz fabrika işlevi vs kereviz ithalatı
- 18. Kereviz: Bir işlev çağrıldığında kısıtlamak için bir yol arıyorum
- 19. Kerter'de django içinde çalışan bir görevi durdurma
- 20. java Dünya kereviz benzer bir görev kuyruğu var mı?
- 21. Halihazırda çalışan Hadoop görevi için görev girişimi kimliğini alın
- 22. Dinamik Değişen Kereviz Yendi Ayarları
- 23. bir Kereviz işçisi Koşu unittest içinde
- 24. Gradle görevi için nasıl bir kategori belirleyebilirim?
- 25. Bir Kereviz görevinin nasıl sağlanacağı Üst üste çakışan Kerbeğin görev yürütmelerini önleme
- 26. Görev Yöneticileri uygulamaları nasıl öldürür? Her şeyden
- 27. kereviz
- 28. Bir devam görev görev örneğini nasıl başlatırım?
- 29. Django ve Kereviz: admin görev listesi değerleri göstermiyor
- 30. MSBuild Görevi okumak için dll
Ayrıntılı ve açık bir açıklama için teşekkür ederiz! – pynovice
Sorun şu ki, işlem başladığında task_id'i almak istiyorum. Veriler, iş başarıyla tamamlandıktan sonra CeleryTaskMeta tablosunda yazılır. – pynovice
@Cole Veritabanındaki bir zaman uyumsuz kazıma sonuçlarını nasıl saklarsınız? – losee