Files
ihrm/outlook_auth/scheduler.py
2025-03-06 12:10:01 +05:30

43 lines
997 B
Python

"""
outlook_auth/scheduler.py
"""
import logging
import sys
from apscheduler.schedulers.background import BackgroundScheduler
logger = logging.getLogger(__name__)
def refresh_outlook_auth_token():
"""
scheduler method to refresh token
"""
from outlook_auth.models import AzureApi
from outlook_auth.views import refresh_outlook_token
apis = AzureApi.objects.filter(token__isnull=False)
for api in apis:
try:
refresh_outlook_token(api)
logger.info(f"Updated token for {api} outlook auth")
print(f"Updated token for {api} outlook auth")
except Exception as e:
logger.error(e)
if not any(
cmd in sys.argv
for cmd in ["makemigrations", "migrate", "compilemessages", "flush", "shell"]
):
scheduler = BackgroundScheduler()
scheduler.add_job(
refresh_outlook_auth_token,
"interval",
minutes=50,
id="refresh_outlook_auth_token",
)
scheduler.start()