django - Using Celery for cron jobs time based on users time decision -
i have project in user decides how long post active, after time post change state.
to solve this, running async tasks , performance, think best choice use celery.
i haven't use celery yet, i've read documentation eta (estimated time of arrival) , expiration, right here.
my questions are:
what proper way (if it's possible) this?
is recommended use duration field or datetime field on model (maximum duration 1 day , 12 hours)?
do need create cron job each post or celery can can solve problem?
you use celery
this, , there ways hook in database update celery scheduled task, may overkill such simple situation showing or not showing expired posts.
here simple example of setting calculated property. reference calculate property active
decide whether show post or not.
import datetime django.db import models django.utils.timezone import now, localtime class post(models.model): created = models.datetimefield(blank=true) title = models.charfield(max_length=100) body = models.charfield(max_length=2000) expires = models.datetimefield(blank=true) @property def active(self): return self.expires > localtime(now()) def save(self, *args, **kwargs): self.created = localtime(now()) self.expires = self.created + datetime.timedelta(hours=36) return super(post, self).save(*args, **kwargs)
Comments
Post a Comment