Skip to main content

Limit the function execution time

Project description

Limit the function execution time

This module provides a decorator which runs the function in a separate multiprocessing.Process and sends SIGKILL after the specified timeout if the function didn't complete.

Requirements

  • Python 3.7+ (needed for multiprocessing.Process.kill)

Install

pip install kill-timeout

Usage

from kill_timeout import kill_timeout


limit_in_seconds = 5


@kill_timeout(limit_in_seconds)
def long_running_function(**parameters):
    """Function which makes some computations

    It could take too long for some parameters.
    """
    ...

try:
    result = long_running_function(iterations=9001)
    print("Function returned: %r" % result)
except TimeoutError:
    print("Function didn't finished in %d seconds" % limit_in_seconds)
except Exception:
    print("Function failed with its internal error! Its original traceback:")
    raise

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kill_timeout-0.0.3.tar.gz (3.3 kB view details)

Uploaded Source

Built Distribution

kill_timeout-0.0.3-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file kill_timeout-0.0.3.tar.gz.

File metadata

  • Download URL: kill_timeout-0.0.3.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for kill_timeout-0.0.3.tar.gz
Algorithm Hash digest
SHA256 03485a3a07ef00f5dd27b53fb4309cf0b22f8ca3a2b00aa3bf95b4a619878f4b
MD5 d83a1727154f18d7c1fa7dbd5a1e6c1a
BLAKE2b-256 18c104a4a45f0d33d2233c1b53f96392c95680ac5b7713abb744df0270306edc

See more details on using hashes here.

File details

Details for the file kill_timeout-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: kill_timeout-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 3.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for kill_timeout-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2bd2934c091f50cb397f7eddef9a4f95e12a1afc45f1ecdc32274d44fc263ba4
MD5 da5cbb6634ef3ac57a053cc77b2b6ff1
BLAKE2b-256 792744f23715790c0c33a88063e751d9f2b7209fe74c394a747f4cc5d4a93a8f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page