This commit is contained in:
2026-04-28 17:35:33 +05:30
parent 58d8329dbd
commit 043a49e6aa
1654 changed files with 303910 additions and 40 deletions
+67
View File
@@ -0,0 +1,67 @@
import time
from datetime import datetime, date
from logging_config import get_logger
logger = get_logger(__name__)
class Scheduler:
def __init__(self, processor, config):
self.processor = processor
self.config = config
# Cycle tracking
self.last_cycle_date = None
self.cycle_no = 0
def _update_cycle(self):
today = date.today()
if self.last_cycle_date != today:
# New day → reset cycle
self.cycle_no = 1
self.last_cycle_date = today
else:
# Same day → increment
self.cycle_no += 1
def run(self):
logger.info("NEFT OUTWARD Scheduler started")
while True:
try:
self._update_cycle()
now = datetime.now()
logger.info(
"=== Starting processing cycle %s | Date: %s | Time: %s ===",
self.cycle_no,
now.strftime("%Y-%m-%d"),
now.strftime("%H:%M:%S")
)
self.processor.process()
end_time = datetime.now()
logger.info(
"=== Completed processing cycle %s | Date: %s | Time: %s ===",
self.cycle_no,
end_time.strftime("%Y-%m-%d"),
end_time.strftime("%H:%M:%S")
)
except Exception:
logger.exception(
"Error occurred during cycle %s on %s",
self.cycle_no,
self.last_cycle_date
)
logger.info(
"Scheduler sleeping for %s minutes",
self.config.poll_interval_minutes
)
time.sleep(self.config.poll_interval_minutes * 60)