Python | Schedule Library
Python | Schedule Library
Schedule is
in-process scheduler for periodic jobs that use the builder pattern for
configuration. Schedule lets you run Python functions (or any other
callable) periodically at pre-determined intervals using a simple,
human-friendly syntax.
Schedule Library is used to schedule a task at
a particular time every day or a particular day of a week. We can also
set time in 24 hours format that when a task should run. Basically,
Schedule Library matches your systems time to that of scheduled time set
by you. Once the scheduled time and system time matches the job
function (command function that is scheduled ) is called.
Installation
$ pip install schedule
schedule.Scheduler class
- schedule.every(interval=1) : Calls every on the default scheduler instance. Schedule a new periodic job.
- schedule.run_pending() : Calls run_pending on the default scheduler instance. Run all jobs that are scheduled to run.
- schedule.run_all(delay_seconds=0) : Calls run_all on the default scheduler instance. Run all jobs regardless if they are scheduled to run or not.
- schedule.idle_seconds() : Calls idle_seconds on the default scheduler instance.
- schedule.next_run() : Calls next_run on the default scheduler instance. Datetime when the next job should run.
- schedule.cancel_job(job) : Calls cancel_job on the default scheduler instance. Delete a scheduled job.
schedule.Job(interval, scheduler=None) class
A periodic job as used by Scheduler.
Parameters:
interval: A quantity of a certain time unit
scheduler: The Scheduler instance that this job will register itself with once it has been fully configured in Job.do().
Basic methods for Schedule.job
- at(time_str) : Schedule the job every day at a specific time. Calling this is only valid for jobs scheduled to run every N day(s).
Parameters: time_str – A string in XX:YY format.
Returns: The invoked job instance - do(job_func, *args, **kwargs) : Specifies
the job_func that should be called every time the job runs. Any
additional arguments are passed on to job_func when the job runs.
Parameters: job_func – The function to be scheduled
Returns: The invoked job instance - run() : Run the job and immediately reschedule it.
Returns: The return value returned by the job_func - to(latest) : Schedule the job to run at an irregular (randomized) interval. For example, every(A).to(B).seconds executes the job function every N seconds such that A <= N <= B.
Let’s see the implementation
# Schedule Library imported import schedule import time # Functions setup def sudo_placement(): print ("Get ready for Sudo Placement at Geeksforgeeks") def good_luck(): print ("Good Luck for Test") def work(): print ("Study and work hard") def bedtime(): print ("It is bed time go rest") def geeks(): print ("Shaurya says Geeksforgeeks") # Task scheduling # After every 10mins geeks() is called. schedule.every( 10 ).minutes.do(geeks) # After every hour geeks() is called. schedule.every().hour.do(geeks) # Every day at 12am or 00:00 time bedtime() is called. schedule.every().day.at(" 00 : 00 ").do(bedtime) # After every 5 to 10mins in between run work() schedule.every( 5 ).to( 10 ).minutes.do(work) # Every monday good_luck() is called schedule.every().monday.do(good_luck) # Every tuesday at 18:00 sudo_placement() is called schedule.every().tuesday.at(" 18 : 00 ").do(sudo_placement) # Loop so that the scheduling task # keeps on running all time. while True : # Checks whether a scheduled task # is pending to run or not schedule.run_pending() time.sleep( 1 ) |
Reference: https://schedule.readthedocs.io/en/stable/
Example
$ pip install schedule
```
import schedule
import time
def job():
print("I'm working...")
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)
while True:
schedule.run_pending()
time.sleep(1)
```
Comments
Post a Comment