Files
B42/at_django_boilerplate/core/scheduler.py
2026-01-07 12:09:20 +05:30

97 lines
2.8 KiB
Python
Executable File

# import logging
# from apscheduler.schedulers.background import BackgroundScheduler
# from django.core.mail import send_mail
# from django.urls import reverse
# from django.contrib.sites.shortcuts import get_current_site
# from django.conf import settings
# logger = logging.getLogger(__name__)
# def every_10_minutes_job():
# logger.info("[Scheduler] [ 600 Seconds] Start")
# logger.info("[Scheduler] [ 600 Seconds] Complete")
# def send_assistance_required_email():
# from leads.models import ApplicationAssistance
# tmp = ApplicationAssistance.objects.filter(status='pending')
# if tmp.count()>=1:
# path = reverse('assistance_list')
# domain = settings.SITE_DOMAIN
# protocol = settings.SITE_PROTOCOL
# link = f"{protocol}://{domain}{path}"
# print(link)
# msg = f'There are {tmp.count()} users requesting assistance.\nClick link below to view:\n{link}'
# send_mail(
# subject='Pending Application Assistance ',
# message=msg,
# from_email=None, # uses DEFAULT_FROM_EMAIL
# recipient_list=['raj@avenirtechcorp.com','info@registeryourstartup.com'],
# fail_silently=False,
# )
# def every_2_minutes_job():
# logger.info("[Scheduler] [120 Seconds] Start")
# send_assistance_required_email()
# logger.info("[Scheduler] [120 Seconds] Complete")
# def start():
# scheduler = BackgroundScheduler(timezone="Asia/Kolkata")
# # 👇 In-memory jobstore (no DB locks)
# # remove DjangoJobStore()
# # scheduler.add_jobstore('memory')
# scheduler.add_job(
# every_10_minutes_job,
# trigger="interval",
# seconds=600,
# id="ten_minute_job",
# replace_existing=True,
# )
# scheduler.add_job(
# every_2_minutes_job,
# trigger="interval",
# seconds=120,
# id="every_2_minutes_job",
# replace_existing=True,
# )
# # 🔧 Example: Run every Monday at 8:15 AM
# # scheduler.add_job(
# # every_10_minutes_job,
# # trigger="cron",
# # day_of_week="mon",
# # hour=8,
# # minute=15,
# # id="test_job",
# # replace_existing=True,
# # )
# # 🔧 Example: Run multiple times a day (e.g., 9:00 AM and 6:00 PM)
# # scheduler.add_job(
# # every_10_minutes_job,
# # trigger="cron",
# # hour="9,18", # comma separated
# # minute=0,
# # id="test_job",
# # replace_existing=True,
# # )
# # 🔧 Example: Run every day at 2:30 AM
# # scheduler.add_job(
# # every_10_minutes_job,
# # trigger="cron",
# # hour=2,
# # minute=30,
# # id="test_job",
# # replace_existing=True,
# # )
# scheduler.start()
# logger.info("Scheduler started...")