43 lines
997 B
Python
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()
|