如何在创建对象后24小时后删除对象

时间:2017-10-18 18:31:21

标签: django database django-models celery

我希望在24小时后删除一个实例,因为该实例已经创建了如何使用celery

如何在创建实例后启动“TIMER”?

我想要像Snapchat

这样的东西

1 个答案:

答案 0 :(得分:1)

取决于规模和您的需求。

您将不得不使用django-celery-beat进行定期任务: http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#beat-custom-schedulers

我会诚实地创建一个每3-5分钟运行一次的芹菜任务。

db.foo.aggregate([ { $addFields: { "rc": {$eq: [{$divide:[{ "$subtract": [ "$date", input ] },1000000]}, {$trunc: {$divide:[{ "$subtract": [ "$date", input ] },1000000]}} ]} }} ,{ $match: {"rc":true}} ]);

models.py

class Foo(models.model): created_at = models.DateTimeField(auto_add_now=True) expiration_date = models.DateTimeField()

views.py

import datetime from django.utils import timezone def add_foo(): # Create an instance of foo with expiration date now + one day Foo.objects.create(expiration_date=timezone.now() + datetime.timedelta(days=1))

tasks.py