Skip to content

Scripts (Python, Node, any language)

If your job is a script, send the ping at the very end — after the real work has finished successfully. Any HTTP client works; here are the two most common.

Copy your monitor’s ping URL from the dashboard and keep it in an environment variable rather than hardcoding it.

Python

import os
import requests
PING_URL = os.environ["DMJR_PING_URL"]
def main():
# ... do the work ...
pass
if __name__ == "__main__":
main() # if this raises, we never reach the ping
requests.get(PING_URL, timeout=10)

Because the ping is the last line, it only runs if main() completed without raising. If the work throws, the script exits non-zero, no ping is sent, and you get alerted.

Node.js

const PING_URL = process.env.DMJR_PING_URL;
async function main() {
// ... do the work ...
}
main()
.then(() => fetch(PING_URL)) // ping only after success
.catch((err) => {
console.error(err);
process.exit(1); // fail loudly, skip the ping
});

The rule

Whatever the language, the pattern is the same: do the work first, ping last, and only if nothing failed. Don’t wrap the ping in a finally/always block — that would report success even when the job errored.