Обновление значения через определенное время с помощью django appscheduler

Я хочу обновлять значение каждый день в определенное время позже.

Я написал мои модели и представления выглядят как

models.py

class InvestmentRequest(models.Model):
    user = models.OneToOneField(User, related_name=“investment_request”, on_delete=models.CASCADE)
    profit = models.DecimalField(max_digits=15, decimal_places=2)
    created_at = models.DateTimeField(auto_now_add=True)

def __str__(self):
    return f"{self.user.username}-{self.amount}"

def increase_balance(self, profit ):
    self.profit += decimal.Decimal(profit )
    self.save()

def save(self, *args, **kwargs):
    super().save(*args, **kwargs)

views.py

from apscheduler.schedulers.background import BackgroundScheduler

def roi_profit(request):
    investment = InvestmentRequest.objects.get(user=request.user)
    amount = 15
    investment .increase_balance(amount)
    return …

scheduler = BackgroundScheduler()
job = None

def tick():
    print(‘One tick!’)
    # roi_profit() --- any way like this


def start_job():
    global job
    job = scheduler.add_job(tick, 'interval', seconds=3)
    try:
        scheduler.start()
    except:
        pass

Я использовал здесь библиотеку "appscheduler", потому что мои требования минимальны, это не сложная конфигурация, как celery. Есть ли способ запускать представления 'roi_profit' в определенное время каждый день? Здесь функция 'tick' работает очень гладко, потому что это обычная функция. Но я не могу вызвать функцию views, потому что это обязательный request. А без request я не могу получить никакого значения из request.user. Это необходимо. Таким образом, я могу обновлять значение моей модели в определенное время каждый день. В течение нескольких дней я бился над этим, но так и не смог найти точного решения.

Любые предложения будут оценены по достоинству. Спасибо.

Вернуться на верх