hotspot / App /Subscriptions /background_tasks.py
Mbonea's picture
expiring subs
1a92f7e
raw
history blame
1.14 kB
from tortoise import Tortoise
from datetime import datetime, timedelta
from App.Subscriptions.Model import Subscription
import logging
logger = logging.getLogger(__name__)
async def check_expiring_subscriptions():
"""
Background task to check for subscriptions that are about to expire
and update their status accordingly.
"""
try:
# Get the current time
current_time = datetime.now()
# Define the threshold for expiring subscriptions (e.g., 1 hour)
threshold = current_time + timedelta(hours=1)
# Fetch subscriptions that are about to expire
expiring_subscriptions = await Subscription.filter(
active=True, expiration_time__lt=threshold
).all()
for subscription in expiring_subscriptions:
# Deactivate the subscription
subscription.active = False
await subscription.save()
logger.info(
f"Subscription {subscription.id} has been deactivated due to expiration."
)
except Exception as e:
logger.error(f"Error checking expiring subscriptions: {str(e)}")