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="scrapper-x",             # logical process name
    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 application logic ...

# 3. Stop the heartbeat when you’re done
killHeartbeat(disable_schedule = False)
======================================================================================================
  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
)

# 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
    show_scheduler_logs=False,      # print scheduler 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.11.tar.gz (6.0 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.11-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyheartbeat-0.0.11.tar.gz
  • Upload date:
  • Size: 6.0 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.11.tar.gz
Algorithm Hash digest
SHA256 9652d18e129603aa6943d3a39ac9dae23e134942d83dd2f3570c1d1cd3e8cd63
MD5 1e92c3a3d8f0ee4041e996ac971780ca
BLAKE2b-256 34f20bd6e2f1dfffea52eb3b1adabd558df310d689fa19a16a57569edb7fb693

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyheartbeat-0.0.11-py3-none-any.whl
  • Upload date:
  • Size: 6.4 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.11-py3-none-any.whl
Algorithm Hash digest
SHA256 9b3ec1158c04d4744150b4041926d719142888a35a4f012526332c58ad7b1305
MD5 ad07c4358f53c551a371441b83089eab
BLAKE2b-256 12decb939916057c1c110ff8830bf3a759b7c4a854ec9a81593a142383a6e58e

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