Python Run Function At Specific Time Everyday
Chapter:
Python
Last Updated:
22-04-2023 04:05:15 UTC
Program:
/* ............... START ............... */
import datetime
import time
import schedule
def my_function():
print("Hello, World!")
# Set the time for the function to run
run_time = datetime.time(hour=9, minute=0, second=0)
# Define a function to schedule the job
def schedule_job():
schedule.every().day.at(str(run_time)).do(my_function)
# Schedule the job
schedule_job()
# Loop to keep the script running
while True:
schedule.run_pending()
time.sleep(1)
/* ............... END ............... */
Notes:
-
The program makes use of three Python modules: datetime, time, and schedule. The datetime module is used to specify the time at which the function should run, and the time module is used to add a delay between schedule checks. The schedule module is used to schedule the function to run at the specified time every day.
- First, the program defines the function that is to be run at the scheduled time. In this case, it is a simple function that prints "Hello, World!" to the console.
- Then, the program sets the time at which the function should run using the datetime.time() method. In this example, we've set the time to 9:00 AM.
- Next, the program defines a function called schedule_job() which schedules the my_function() to run at the specified time using the schedule.every().day.at() method. This function is called once at the beginning of the script to schedule the job.
- Finally, the program uses a loop that continuously checks for scheduled jobs to run. This loop calls the schedule.run_pending() method to check if there are any scheduled jobs that are due to run, and if there are, it runs them. The time.sleep(1) delay is added to prevent the loop from running too frequently and using too many resources.
- By using the datetime, time, and schedule modules, this program runs the specified function at the same time every day, and the loop ensures that the function is continuously scheduled and run at the specified time.