Je ne connais pas de moyen de rendre l'ORM Django asyncrone, mais nous
avons la même problématique que vous et nous l'avons résolu en
encaspulant systématiquement les opérations blocantes dans une task
celery.
Par exemple, une des tâches pour écrire dans la base de donnée
ressemble à:
[code]from django.db import models
from celery import task
@task
def update_model(app, model, filters, ,values):
model = models.get_model(app, model)
model.objects.filters(**filters).update(**values)[/code]
Et dans le code que l'on veut non bloquant:
[code]
import datetime
from tasks import update_model
# update tous les models créés avant aujourd'hui
update_model.apply_async(['ma_super_app', 'MonSuperModel',
{(created_date__lt': datetime.datetime.now()}, {'super_attribut':
'nouvelle_valeur'}])[/code]
Ce n'est pas super DRY, mais c'est simple et ça fait le boulot.
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django