INNER CODE UNIT · Python

_calculate_next_run

MichielMe/fastscheduler · src/fastscheduler/main.py:367

    def _calculate_next_run(self, job: Job):
        """Calculate next run time for time-based schedules."""
        if job.timezone:
            tz = ZoneInfo(job.timezone)
            now = datetime.now(tz)
        else:
            now = datetime.now()
            tz = None

        if job.schedule_type == "cron" and job.cron_expression and CRONITER_AVAILABLE:
            base_time = now if tz else datetime.now()
            cron = croniter(job.cron_expression, base_time)
            next_run = cron.get_next(datetime)
            job.next_run = next_run.timestamp()

        elif job.schedule_type == "daily" and job.schedule_time:
            hour, minute = map(int, job.schedule_time.split(":"))
            next_run = now.replace(hour=hour, minute=minute, second=0, microsecond=0)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…