Обновление значения через определенное время с помощью 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. Это необходимо. Таким образом, я могу обновлять значение моей модели в определенное время каждый день. В течение нескольких дней я бился над этим, но так и не смог найти точного решения.
Любые предложения будут оценены по достоинству. Спасибо.