Simple test¶
Ensure your device works with this simple test.
1# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2# SPDX-FileCopyrightText: Copyright (c) 2021 Nathan Byrd
3
4# SPDX-License-Identifier: MIT
5
6import time
7import uschedule as schedule
8
9
10def greet():
11 print("Hello, world!")
12
13
14# Note: pass functions, not function calls - i.e. "greet", not "greet()"
15
16# schedule every 10 seconds
17schedule.every(10).seconds.do(greet)
18
19# schedule every 10 minutes
20schedule.every(10).minutes.do(greet)
21
22# schedule once a day
23schedule.every().day.at("10:30").do(greet)
24
25# schedule from 5 to 10 minutes
26schedule.every(5).to(10).minutes.do(greet)
27
28# schedule on a particular day
29schedule.every().monday.do(greet)
30
31# schedule day and time
32schedule.every().wednesday.at("13:15").do(greet)
33
34# schedule once a minute at seventeen seconds
35schedule.every().minute.at(":17").do(greet)
36
37
38while True:
39 # Run any pending jobs
40 schedule.run_pending()
41 time.sleep(1)
Additional utilities¶
Additional utilities that are available
1# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2# SPDX-FileCopyrightText: Copyright (c) 2021 Nathan Byrd
3
4# SPDX-License-Identifier: MIT
5
6import time
7import uschedule as schedule
8
9
10def greet():
11 print("Hello, world!")
12
13
14# schedule every 10 seconds
15schedule.every(10).seconds.do(greet)
16
17# Get the datetime of next run
18next_run_datetime = schedule.next_run()
19
20# Get the number of seconds until the next run
21next_run_seconds = schedule.idle_seconds()
22
23# cancel all jobs
24schedule.clear()
25
26# schedule every 1 second
27schedule.every(1).second.do(greet)
28
29while True:
30 # Run any pending jobs
31 schedule.run_pending()
32 time.sleep(1)
Real Time Clock¶
This module works great in combination with a Real Time Clock (RTC), if one is available on your device. For example:
1# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2# SPDX-FileCopyrightText: Copyright (c) 2021 Nathan Byrd
3
4# SPDX-License-Identifier: MIT
5
6import time
7import rtc
8import busio
9import board
10import adafruit_pcf8523
11import uschedule as schedule
12
13
14def greet():
15 print("Hello, world!")
16
17
18i2c = busio.I2C(board.SCL, board.SDA)
19rtc_device = adafruit_pcf8523.PCF8523(i2c)
20rtc.RTC().datetime = rtc_device.datetime
21
22# schedule every 10 seconds
23schedule.every(10).seconds.do(greet)
24
25# schedule every 10 minutes
26schedule.every(10).minutes.do(greet)
27
28# schedule once a day
29schedule.every().day.at("10:30").do(greet)
30
31# schedule from 5 to 10 minutes
32schedule.every(5).to(10).minutes.do(greet)
33
34# schedule on a particular day
35schedule.every().monday.do(greet)
36
37# schedule day and time
38schedule.every().wednesday.at("13:15").do(greet)
39
40# schedule once a minute at seventeen seconds
41schedule.every().minute.at(":17").do(greet)
42
43
44while True:
45 # Run any pending jobs
46 schedule.run_pending()
47 time.sleep(1)