Mastering Uptime in 2024: Using GitHub Actions to Set Up Cron Jobs and Keep Your Render Server Running 24/7

3 min readAug 16, 2024

Introduction:

In this article, I’ll guide you through the process of setting up a cron job using GitHub Actions to keep your Render server from spinning down during idle periods. This is particularly useful for applications that need to be available 24/7 but are hosted on platforms like Render that might spin down your server after a period of inactivity (15 min)🥲.

What Are Cron Jobs?

A cron job is a command or script that is scheduled to run at fixed times, dates, or intervals. This makes it ideal for repetitive tasks like backups, maintenance scripts, or sending out periodic notifications.

Why Use GitHub Actions for the Cron Job?

GitHub Actions is a powerful tool that allows you to automate tasks directly from your GitHub repository. By using GitHub Actions, you can schedule a cron job that sends regular requests to your Render server, preventing it from spinning down.

Setting Up the Cron Job:

Step 1: Create a GitHub Action

First, navigate to your repository on GitHub. Create a new directory named .github/workflows if it doesn’t already exist. Inside this directory, create a new file called request-render.yml.

img-1

Step 2: Define the Cron Schedule

In your request-render.yml file, add the following code:

# This will make a request render backend to stop spins down the server on idle
name: Request Render

on:
workflow_dispatch:
schedule:
- cron: "*/12 * * * *"

jobs:
request-render:
runs-on: ubuntu-latest
steps:
- name: Request Render
run: curl -X GET https://gambling-stake.onrender.com
img-2
  • Explanation:

name: Request Render: This gives a name to the GitHub Action.

on: Specifies the events that trigger the action.

workflow_dispatch: Allows you to manually trigger the workflow.

schedule: Defines a cron schedule to run the workflow automatically. The cron expression */12 * * * * means the workflow will run every 12 minutes.

jobs: Specifies the jobs that the action will perform.

runs-on: ubuntu-latest: Defines the virtual environment to run the job. ubuntu-latest is a good default.

steps: The individual tasks within the job. Here, we use curl to make a GET request to the Render app URL.

Make sure to replace 👉 https://your-render-app.onrender.com with your actual Render app URL.

Step 3: Monitor and Deploy

Once the cron job is set up, it will automatically run every 12 minutes, keeping your Render server active. You can monitor the workflow runs in the “Actions” tab to ensure everything is functioning correctly.🥳

Conclusion:

By following this guide, you’ve successfully set up a cron job using GitHub Actions to prevent your Render server from spinning down during idle times. This ensures your application remains accessible without interruption.

If you enjoyed this article, please make sure to Subscribe, Clap, Comment and Connect with me today! 🌐

--

--

Agastyagaur
Agastyagaur

Written by Agastyagaur

Tech whisperer, An underrated voice in the tech medium, bringing fresh perspectives and insightful analysis, but not your typical regular contributor.

No responses yet