Удаление записи в бд через заданное время

Пытаюсь удалить запись вот таким способом

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% случаев. Причем процесс завершается без ошибки и пишет, что объект удаляется, но в бд все также. Подскажите, в чем может быть проблема.


Ответы (0 шт):