To help your application run more efficiently, you must conduct regular website maintenance. You can automate maintenance tasks or jobs to run at scheduled intervals using the Scheduled Jobs page in the Cloud Platform user interface. This functionality is sometimes referred to as a cron job. For more information about why you must run cron jobs regularly, see Cron automated tasks overview.
Note for Site Factory subscribers
For information about cron and scheduling tasks on Site Factory, see Managing cron tasks using the management console.
Scheduled jobs are specific to the environment where they’re created. Although you can’t create a job executing a command across several environments based on the same schedule, you can create a job for each environment, with each job using the same command line and schedule.
You must use the Scheduled Jobs page for scheduled jobs and not the default Drupal cron. Compared to Drupal cron, using the Scheduled Jobs page is more reliable, and provides support for adding extensive and integrated logging for Cloud Platform applications.
By default, Drupal cron (also known as poor man’s cron) is enabled for websites. Acquia recommends you disable Drupal cron and rely on the Cloud Platform functionality for running scheduled jobs to ensure that they will run on the schedule you specify. By contrast, Drupal’s default cron functionality is only triggered by HTTP requests and can unnecessarily keep PHP processes running for a long time, potentially causing elevated resource utilization or slower site performance. Disabling Drupal cron also enables you to avoid the performance reduction on page requests. For more information, see Automated Cron.
To disable Drupal cron:
Sign in to your Drupal website as an administrator.
Go to Configuration > System > Cron
In the Run cron every list, click Never.
This option is available in Drupal 9 or later if you have already installed the Automated Cron module. If this option does not exist for your Drupal version, you are not required to perform any additional steps.
Click Save configuration.
Uninstall the Automated Cron Drupal module.
To create a scheduled job for an environment:
Select an application and an environment.
Click Scheduled Jobs.
Click Add Job to add a scheduled job.
In the Create a new scheduled job on [env] dialog, enter a descriptive name for the job in the Job name field.
In the Command field, enter the command you want Cloud Platform to routinely run for the environment. You can enter any commands allowed from an SSH connection to the environment, as long as they meet the limits and special considerations for scheduled jobs.
You must test commands using SSH in your Cloud Platform environment to ensure they work before adding the commands as automated cron commands.
Select how often you want to run the command from the menus in the Command frequency section:
Every X minute, where X is the number of minutes
Every hour, at a number of minutes past the hour
Every day, at a certain time
Every week, at a certain day of the week and time of day
Every month, at a certain day of the month and time of day
Every year, at a certain month, day of the month, and time of day
Alternatively, you can enter the cron frequency as a string. For more information, see Cron time string format.
All times are UTC.
Running cron too often can affect performance.
On Cloud Next:
You cannot set crons at frequencies of less than 5 minutes.
Your cron task duration must not be more than an hour. If your cron job lasts longer than an hour, it terminates.
After you create a new job, Cloud Platform displays the job in the list of scheduled jobs for the environment where it was created.
For most applications on Cloud Platform, the following basic cron functionality will ensure timely cron execution and essential logging of cron output:
/usr/local/bin/cron-wrapper.sh [site].[env] http://[site_URL]
In this example, you will replace the above placeholders with the following information:
[site] is the name of your application on Cloud Platform.
[env] is your environment (typically one of
[site_URL] is your environment’s URL (as listed on the Cloud >
Domains page). If you are using Drupal multisite, your cron jobs are
specific to each website in the multisite installation. Use the URL of the
website in the installation you want to target.
Do not append a
cron_key to the website URL.
The above script will log the output of
drush cron to a file named
drush-cron.log. For example, if your application’s codebase is named
mysite, the log file for the prod environment will be located in the
Cloud Classic environments:
Cloud Next environments:
When creating scheduled jobs, the following limitations apply:
Commands in scheduled jobs can’t be longer than 255 characters. If you must run a command longer than 255 characters, you must incorporate it by running a shell script you run as a scheduled job.
% character is a special character in cron commands. If your command
uses this special character, be sure to precede it with a backslash (
Commands entered should always provide absolute paths to ensure correct execution as shown in the following examples.
When you use the Acquia cron wrapper, the cron job uses the PHP memory limit for your environment (by default, 128 MB). When you use Drush cron directly, it will use the command line process memory limit, which is 512 MB.
Each job you create on the Scheduled Jobs page has links to help you manage the job, which allow you to do the following:
Disable: Stops the scheduled job from running until you click Enable. Disabled jobs move to the Disabled list that follows the Enabled list.
Edit: Opens a window allowing you to change the attributes of the scheduled job. After you make your changes, click Edit.
Remove: Opens a window deleting the scheduled job when you click Remove. If you remove a scheduled job, you can’t recover it, and you must manually recreate it to restore the job.
You can’t edit or remove administrative jobs you didn’t create for your environments, including automated nightly backups.
Some Cloud Platform Enterprise subscriptions have a dedicated cron infrastructure due to the particular performance needs of their applications. To configure a scheduled job on a dedicated cron infrastructure, contact Acquia Support. Environments running on Cloud Next technologies have dedicated cron capacity by default.