npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

heroku-keep-awake

v1.1.2

Published

Simple lightweight utility to help keep Heroku app awake by pinging the Dynos at a set interval.

Downloads

71

Readme

Version

heroku-keep-awake

Simple lightweight utility to help keep Heroku apps awake by pinging the Dynos at a set interval.

Disclaimer: This utility will only work with Heroku until you run out of "Free Dyno Hours" for the month. I'd suggest upgrading to a paid tier if you're hosting an app on Heroku whose uptime is important 🙂 (https://devcenter.heroku.com/articles/free-dyno-hours#managing-your-free-dyno-usage)

Installation

If using yarn:

yarn add heroku-keep-awake

If using npm:

npm i heroku-keep-awake

Usage

This utility works by periodically pinging the URL of the Heroku application you want to keep awake. For example, https://my-app.herokuapp.com

By default, Heroku apps on the free tier will sleep after 30 minutes of inactivity.

The examples below will show how you can keep your apps awake by using this utility within a Node.js application.

There are two different functions that can be imported:

const { wakeDyno, wakeDynos } = require('heroku-keep-awake');

Simply place the desired function call wherever your application starts, to initalize it.

const express = require('express');
const { wakeDyno, wakeDynos } = require('heroku-keep-awake');


const PORT = process.env.PORT || 3000
const DYNO_URL = 'https://my-app.herokuapp.com';
const DYNO_URLS = ['https://my-app.herokuapp.com', https://my-other-app.herokuapp.com]

const app = express();

app.listen(PORT, () => {
    wakeDyno(DYNO_URL); // Use this function when only needing to wake a single Heroku app.

    wakeDynos(DYNO_URLS); // Use this function when needing to wake multiple Heroku apps passed as an Array of URLs.
})

The functions also accept an optional options object for setting a desired interval (in minutes), disabling logging, or specifying stop times when dynos shouldn't be kept awake.

const DYNO_URL = 'https://my-app.herokuapp.com';

const opts = {
    interval: 29,
    logging: false,
    stopTimes: { start: '00:00', end: '06:00' }
}

wakeDyno(DYNO_URL, opts);

Stop Times

Stop Times is a feature that prevents the utility from pinging the Heroku applications during a specific timeframe. This is useful when wanting to allow apps to sleep and not use up the Free Dyno Hours.

The stopTimes object must include both a stop and end time property. These times should be specified in 24 Hour Time (Military Time) format.

// Examples:

stopTimes = { start: '00:00', end: '06:00' } // 12am to 6am
stopTimes = { start: '12:00', end: '18:00' } // 12pm to 6pm

Documentation

| Name | Description | Default | Type | | --------- | --------------------------------------------------------------------------- | ------- | ------- | | interval | Interval, in minutes, that the Heroku Dyno should be pinged. | 29 | Number | | logging | Turn off the logging that logs whether the calls were successful or not. | true | Boolean | | stopTimes | Object used to specify a start/end time to not ping the Heroku applications | {} | Object |

Contributing

Pull requests are always welcome! Feel free to open a new GitHub issue for any changes that can be made.

Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub

Author

Colby Miller | https://colbymillerdev.com

License

MIT