Run a function or other callable every N seconds
Project description
Recurring
This is a simple library for running a function or callable every N seconds. It's meant for applications that need to schedule small, self-contined callable(s) on a relatively long, potentially changing period . alive-checks, state snapshots, that sort of thing.
Use this if:
- You want to call something periodically over the lifetime of your application.
- You want to be able to change the time between calls.
- You want or need to avoid the overhead of
join
ing andstart
ing a thread every time. (up to 1/5 of a second according to my sample-size of one machine under no other load) - The stuff you're going to call isn't going to destroy machines if it's killed abruptly at the end of the application's life.
This is probably not appropriate for your project if:
- You're already using or likely will be using a fleshed-out concurrency framework.
- You have many things you'd like to repeatedly schedule and run.
- Your callables absolutely must execute some cleanup code to avoid disaster on kill.
This is not a library intended for top-level program composition.
Installation:
pip install recurring
Usage:
import recurring
def stuff():
# do stuff ...
seconds_between_stuff = 30
job = recurring.job(stuff, seconds_between_stuff)
job.start()
# ...
seconds_between_stuff = 300000000 # this will be *from when rate is set*, not *from the next scheduled call*
job.rate = seconds_between_stuff
# ...
# stop making calls until start() is called again
job.stop()
# some time later ....
job.start()
# stop making calls permanently
job.terminate()
job.start() # raises RuntimeError
job.rate = 3000 # raises RuntimeError
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file recurring-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: recurring-2.0.0-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08d25a10182da31b0d8c7a6c0d199706d7703026dd30c451594ee46d14133e69 |
|
MD5 | 45595b9342ae5ec9583a89e5d8cc1be2 |
|
BLAKE2b-256 | 356f4e2ffc435bfcee7bcb83bad0d8307bd45842baa0b080e1efa55e07cc595d |