Python time limiter library
Project description
Welcome to timelimiter
Python time limiter library.
Beyond a certain wait interval, a successful result is unlikely.
Resources:
Usage
- Extend
TimeoutHandler
withtimeout
expressed in seconds。Override_run
method。MySQLTimeoutHandler
for example.
from timelimiter.timeout_handler import TimeoutHandler, TimeoutHandlerFactory
class MySQLTimeoutHandler(TimeoutHandler):
timeout = 0.5
def __init__(self):
super(MySQLTimeoutHandler, self).__init__()
# Some way to get MySQL thread id
self.thread_id = 1
def _run(self):
# Kill MySQL connection
print(self.thread_id)
class MySQLTimeoutHandlerFactory(TimeoutHandlerFactory):
def create_handler(self) -> TimeoutHandler:
return MySQLTimeoutHandler()
- Use
TimeLimiter
to wrap the function。
from timelimiter.event_loop import start_loop
from timelimiter.time_limiter import TimeLimiter
start_loop()
factory = MySQLTimeoutHandlerFactory()
@TimeLimiter(factory)
def foo():
# Do something
...
Configuration
Use environment to set configuration.
Name | Description | Default |
---|---|---|
TIME_LIMITER_CAPACITY | Max capacity for time limiter queue | 100,000 |
Author
👤 Keyes Hsu
- Github: @KeyesHsu
🤝 Contributing
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Show your support
Give a ⭐️ if this project helped you!
📝 License
Copyright © 2022 Keyes Hsu.
This project is MIT licensed.
This README was generated with ❤️ by readme-md-generator
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 Distribution
timelimiter-0.1.0.tar.gz
(5.3 kB
view hashes)
Built Distribution
Close
Hashes for timelimiter-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd4852c1ba3339703308670c7b7620f0104e53d3b3b5d7eba007c647100e80e8 |
|
MD5 | 340b5eb289ceaa89ea54e5f08fd2cd5c |
|
BLAKE2b-256 | 3777edb48bcc4aab46490a54c61586d7736e03f1642b3c0bff89ad995bc86920 |