Удаление записи в бд через заданное время
Пытаюсь удалить запись вот таким способом
import time
from multiprocessing import Process
from django.db import models
from .validators import link_lifetime_validator
def lalala(model: 'UrlModel', user_pk, time_to_delete):
time.sleep(time_to_delete)
model.objects.get(pk=user_pk).delete()
class UrlModel(models.Model):
original_url = models.URLField(max_length=250, unique=True)
short_path = models.CharField(max_length=100, db_index=True, unique=True)
link_lifetime = models.TimeField(validators=[link_lifetime_validator])
register_time = models.DateTimeField(auto_now_add=True)
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
time_to_delete_in_sec = self.link_lifetime.hour * 3600 + self.link_lifetime.minute * 60 + self.link_lifetime.second
Process(target=lalala, args=(UrlModel, self.pk, time_to_delete_in_sec), name=self.short_path,
daemon=True).start()
def get_absolute_url(self):
return self.short_path
class Meta:
get_latest_by = '-register_time'
ordering = ['-register_time']
Ничего не выходит. Если вбиваю в консоли django
UrlModel.objects.get(pk=123).delete()
То запись из бд удаляется в 100% случаев. Причем процесс завершается без ошибки и пишет, что объект удаляется, но в бд все также. Подскажите, в чем может быть проблема.