Skip to main content

Library for sending pulses to a process monitoring server

Project description

Python Heartbeat Library

A lightweight utility for sending regular “pulses” (heartbeats) to an HTTP endpoint. These pulses confirm that your main script is running. If the main script stops, the heartbeat halts too—making it easy to detect failures. In addition to the original always-on mode, you can now schedule heartbeats to run only during configurable business hours via APScheduler.

Installation

You can install the Python Heartbeat Library using pip:

pip install pyheartbeat

Note: APScheduler is already included as a dependency, so business-hours scheduling works out of the box.

Example

  1. Legacy Mode (Always On) Use this mode when you want a heartbeat thread that simply runs at a fixed interval, 24/7.
======================================================================================================
from pyheartbeat import setUrl, heartbeat, killHeartbeat

# 1. Point to your monitoring endpoint
setUrl("https://your-endpoint/heartbeat")

# 2. Start the heartbeat thread
heartbeat(
    interval=600,            # seconds between pulses
    name="my-process",       # logical process name
    description="doing work",# human-readable description
    additional_info="v1.0.0",# any extra metadata
    show_response=True,      # print HTTP status codes
    show_logs=True           # print thread start/stop logs
)

# ... your main application logic ...

# 3. Stop the heartbeat when you’re done
killHeartbeat()
======================================================================================================
  1. Business-Hours Mode (New) Schedule heartbeats to start and stop automatically each day within a configurable business-hours window.
======================================================================================================
from pyheartbeat import (
    setUrl, setBusinessHours, businessHeartbeat,
    killHeartbeat, shutdownScheduler
)

# 1. Configure the endpoint
setUrl("https://your-endpoint/heartbeat")

# 2. Set business hours window (09:00–18:00 Mon–Fri)
setBusinessHours(
    start_hour=9,
    end_hour=18,
    days='mon-fri',
    tz='America/Sao_Paulo'
)

# 3. Schedule the heartbeat to run only during business hours
businessHeartbeat(
    interval=600,                # send a pulse every 600 seconds
    name="scrapper-x",             # logical name of the process
    description="process monitor",  # human-readable description
    additional_info="production", # any extra metadata
    show_response=True,           # print HTTP status codes
    show_logs=True,               # print thread start/stop logs
    api_token="YOUR_API_TOKEN"    # optional authentication token
)

# ... your main script runs here ...

# 4a. Stop only the heartbeat thread (it will automatically restart tomorrow)
killHeartbeat()

# 4b. Stop the heartbeat thread and disable automatic restart tomorrow
killHeartbeat(disable_schedule=True)
======================================================================================================

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

pyheartbeat-0.0.6.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyheartbeat-0.0.6-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file pyheartbeat-0.0.6.tar.gz.

File metadata

  • Download URL: pyheartbeat-0.0.6.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pyheartbeat-0.0.6.tar.gz
Algorithm Hash digest
SHA256 69fe154059b0c7a2b7529152082a074673b7e25fc6132adce1cffd86cda4f3a4
MD5 0df5a5cbf951b063a93fa90c008c1cdd
BLAKE2b-256 666b064936ef458d1ab93fc79c04c3cf2814e3ab24cc9eab008219b7927bc7b5

See more details on using hashes here.

File details

Details for the file pyheartbeat-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: pyheartbeat-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pyheartbeat-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f623e7a723a557b4ce121a567c7bd6cdd45f7c208e02532e789441a60dbceefc
MD5 395035d3fa3c3f8f596f2a2531327d9e
BLAKE2b-256 0cea7054b7cb8dbafc8b2c7622243ab37cce28170558f82de69baaf4da90b680

See more details on using hashes here.

Supported by

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