Skip to content

Cron job

Cron is a Linux utility that schedules a command or script on your server to run automatically at a specified time and date. A cron job is the scheduled task itself. Cron jobs can be very useful to automate repetitive tasks.

Every modern application with decent features must have cron job configured in order tasks to be executed in the background.

Whatsmark requires a properly configured cron job, follow the steps explained below to configure cron job for your installation.

NOTE

For the examples below, make sure to replace /path/to/whatsmark/ with the path to your installation.

On some shared hosting you may need to specify the full path to the PHP executable (for example, /usr/local/bin/php82 or /opt/alt/php82/usr/bin/php instead of php)

TIP

Did you know that if you are using our hosted solution, the cron job is automatically configured for you during installation?

Setting Up a Cron Job in cPanel

  • When using cPanel, to ensure that scheduled tasks in Whatsmark run automatically, you need to set up a Cron Job:

1. Log In to cPanel:

  • Access your hosting account's cPanel.

2. Find Cron Job:

  • Use the cPanel search feature and type in Cron Job to locate the Cron Jobs section.

3. Add New Cron Job:

  • In the Cron Jobs section, find the option to add a new cron job.
  • Enter the following command in the command field:
php
/path/to/whatsmark/artisan schedule:run >> /dev/null 2>&1
  • Replace /path/to/whatsmark with the actual path to your Whatsmark installation. cron-job

Setting Up a Cron Job Via SSH

  • For server management through SSH, a Cron Job needs to be configured from the command line. It's important to set up the cron job under the user account that handles the web server processes, commonly the www-data user.

1. Open Crontab for the Web Server User:

php
sudo crontab -u www-data -e

2. Add the Cron Job: In the crontab file, enter the following line:

php
* * * * * /usr/bin/php /home/cijagani-whatsmark/htdocs/whatsmark.cijagani.in/whatsmark-non-saas/artisan schedule:run >> /dev/null 2>&1

3.Replace /path/to/whatsmark with the actual path to your Whatsmark installation.

NOTE ON ROOT USER

Avoid using the root user for configuring the cron job. It should be set under the user account that handles web server processes to ensure proper functionality.

Verifying Cron Job Configuration

  • Ensuring that the cron job is correctly set up is crucial for the smooth operation of Whatsmark.
  • Access System Info:
    • In your Whatsmark dashboard, go to Settings -> System -> System Info.
  • Check Last Cron Run:
    • Look for the Last Cron Run row.
  • Confirmation of Proper Setup:
    • If the Last Cron Run value resets every minute, your cron job is configured correctly for your Whatsmark installation

Common Cron Job Commands

Below you can find common cron job commands that are confirmed to work for commonly used hosting providers, in most cases the commands are confirmed by our customers and if your hosting provider is listed below, they should work in your environment as well.

WARNING

The examples below are using path /path/to/whatsmark/ as an example, make sure to replace this path with the path to your installation.

TIP

Is your hosting Whatsmark on a commonly used hosting provider and you can confirm that the cron job command works perfectly fine? Send us the command via our support area so we can add it here and other customers can benefit from it.

4. Queue Worker For Cron Job

  • There are 2 common scheduler for queue worker
  • You can apply following command for queue work
php
php artisan queue:work --queue=whatsapp-messages --sleep=3 --tries=3 --timeout=60 --backoff=5 --max-time=3600 --max-jobs=100 --daemon &

Key Flags Explained:

  • --queue=whatsapp-messages → Specifies the queue name.
  • --sleep=3 → If no jobs are available, sleep for 3 seconds instead of polling constantly.
  • --tries=3 → Retries failed jobs up to 3 times before marking them as failed.
  • --timeout=60 → Jobs that exceed 60 seconds are killed.
  • --backoff=5 → If a job fails, wait 5 seconds before retrying.
  • --max-jobs=100 → Process a maximum of 100 jobs before restarting.
  • --max-time=3600 → Restart after 1 hour to free memory.
  • --daemon → Keeps the worker running persistently in the background.

© 2024 - Corbital Technologies. All rights reserved.