timelimiter

Python time limiter library


License
Other
Install
pip install timelimiter==0.1.1

Documentation

Welcome to timelimiter

PyPI Python License: MIT codecov

Python time limit library, using event loop to schedule job.

Resources:

Install

pip install timelimiter

Usage

  1. Extend TimeoutHandler with timeout 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()
  1. 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

Run tests

make test

Author

👤 Keyes Hsu

🤝 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