Scheduled tasks

From MoodleDocs

Managing scheduled tasks

An administrator can schedule routine tasks very precisely from Administration > Site administration > Server > Tasks > Scheduled tasks.

Note that you still need to run the cron scripts (admin/cli/cron.php or https://yoursite/admin/cron.php) at regular intervals. It is recommended that the cron is run every minute.

Scheduled tasks
Editing a scheduled task

Clicking the edit icon allows the administrator to specify the minute/hour/day/month or day of the week the task is to be run. It is also possible to reset the task to its default setting or disable it completely.

The column 'Next run' provides information on whether a plugin or a task is disabled (as well as the date that a task will next run).

Task processing

From Site administration > Server > Tasks > Task processing, you can disable/enable cron and view and modify the processing of scheduled and ad hoc tasks.

The length of time to keep polling for additional tasks can be managed from a 'keep alive'setting (with a default value of 3 minutes.)

Format for scheduling tasks

When typing into the fields, the format is the same as for Unix cron. Examples are as follows and are according to which field you are editing:

* is every minute, hour, day, month
*/2 is every two minutes, every two hours or every second day
2-10 is every minute between two and ten past the hour or every hour between 2 and 10 am 
0 is every Sunday
1 is every Monday or every January
2,5 is the second and 5th of the month, or February and May, or Tuesday and Friday.

Default: R means that a random value is picked when saving changes. This helps to distribute tasks more equally instead of running too many of them on the hour, midnight etc.

Fail delay

If you're trying to debug a cron task, you may notice the Fail Delay becomes populated with a number. This is the time in seconds the cron will delay running the task. To sidestep this problem for development purposes, take a look at the Scheduled Tasks section here: Administration via command line#Scheduled tasks.

Running individual tasks

To be able to run individual scheduled tasks via 'Run now' links on the scheduled tasks page, 'Allow 'Run now' for scheduled tasks' (tool_task | enablerunnow) in Site administration / Security / Site security settings should be enabled AND 'Path to PHP CLI' (pathtophp) in Site administration / Server / System paths should be set.

examplescheduledtasks.png

Ad hoc tasks

From Site administration > Server > Tasks > Ad hoc tasks you can see ad hoc tasks grouped by class name.

Clicking on a component/class name you then have a link to run that particular ad hoc task from the UI.

Ad hoc tasks can be also be run individually from the command line via admin/cli/adhoc_task.php. Options are:

  • Run by id
  • By class
  • Only failed

It is also possible to limit the number of tasks to run, e.g., no more than four at a time.

See [MDL-70975] for example CLI commands to run the above ad hoc tasks.

Tasks running now

Currently running tasks may be viewed from Site administration > Server > Tasks >Tasks running now

TasksRunningNow.png

Launching a task from CLI

You can also launch individual task from Command Line Interface (see Administration via command line).