Skip to content
Explain to Dev
Explain to Dev

Empowering developers with the knowledge to build, create, and innovate in the software world.

  • Home
  • About
  • Java
  • Python
  • PHP
  • .NET
  • Node.js
  • SQL
  • Privacy Policy
Explain to Dev

Empowering developers with the knowledge to build, create, and innovate in the software world.

How to Schedule Recurring Tasks in PHP Without Relying on Cron Jobs

etd_admin, May 13, 2025May 13, 2025

When it comes to automating repetitive actions in PHP—like sending reminder emails, updating stats, or cleaning up temporary files—cron jobs are the go-to solution. But what if you’re on shared hosting or working in an environment where you can’t use cron jobs? Don’t worry, it’s still possible. In this article, we’ll explore how you can schedule recurring tasks in PHP without relying on cron jobs, using simple and effective methods that work inside your application.

The Challenge

PHP is a server-side scripting language that runs only when a request is made (like when someone visits a webpage). So, unlike system-level tools like cron, it doesn’t naturally run in the background. This means we have to simulate scheduled behavior.

Use Timestamp Checks Inside Application Logic

One of the most straightforward methods to schedule recurring tasks in PHP without relying on cron jobs is to hook into regular page visits or API requests. You keep track of when a task last ran using a file or database, and only execute the task if the desired interval has passed.

Example: Simple File-Based Scheduler

function runScheduledTask()
{
    $taskInterval = 3600; // run every hour
    $lastRunFile = __DIR__ . '/last_run.txt';

    if (!file_exists($lastRunFile)) {
        file_put_contents($lastRunFile, 0);
    }

    $lastRun = (int)file_get_contents($lastRunFile);
    $now = time();

    if (($now - $lastRun) >= $taskInterval) {
        // Put your recurring task here
        file_put_contents('log.txt', "Task executed at " . date('Y-m-d H:i:s') . "\n", FILE_APPEND);

        // Update last run timestamp
        file_put_contents($lastRunFile, $now);
    }
}

// Call this function at the start of a commonly visited page
runScheduledTask();

The code explained:

  • last_run.txt stores the timestamp of the last execution.
  • If the current time minus last run time exceeds your interval, the task runs.
  • Works great on websites with steady traffic.

Use a Queue and Dispatcher Pattern

Another way to schedule recurring tasks in PHP without relying on cron jobs is to set up a basic job queue system. Instead of relying on time, you push tasks into a queue and check that queue periodically when a user accesses a page.

Create a Queue File:

// queue.json
[
    {
        "task": "send_reminder_email",
        "run_every": 3600,
        "last_run": 0
    }
]

Dispatcher Code:

function dispatchQueue()
{
    $queueFile = __DIR__ . '/queue.json';
    $queue = json_decode(file_get_contents($queueFile), true);
    $now = time();

    foreach ($queue as &$task) {
        if (($now - $task['last_run']) >= $task['run_every']) {
            // Simulate the task
            file_put_contents('log.txt', "Executed: {$task['task']} at " . date('Y-m-d H:i:s') . "\n", FILE_APPEND);

            // Update timestamp
            $task['last_run'] = $now;
        }
    }

    file_put_contents($queueFile, json_encode($queue, JSON_PRETTY_PRINT));
}

// Call on every request
dispatchQueue();

This gives you flexibility to manage multiple recurring tasks and customize intervals per task.

Use JavaScript for Background Ping

If you want more control and your PHP app doesn’t get much regular traffic, you can create a small JavaScript script that pings a PHP endpoint at intervals while users are active.

<script>
setInterval(function() {
    fetch('/scheduler.php');
}, 60000); // ping every minute
</script>

Then, inside scheduler.php, use the same logic from the examples above to check and run your tasks.

Even if you don’t have access to system cron jobs, you can still automate tasks using built-in PHP logic and a little creativity. By tracking timestamps and executing functions conditionally during regular traffic or using background pings, you can schedule recurring tasks in PHP without relying on cron jobs effectively.

PHP PHPScheduling

Post navigation

Previous post

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

©2025 Explain to Dev | WordPress Theme by SuperbThemes