In the table that lists the scheduled tasks:
1. There are badges to show which components are disabled.
2. The plugin name (e.g. auth_ldap) is shown as well as the
human-readable name (e.g. LDAP server).
3. Where a time column has a non-default value, it is highlighted
and the default is shown.
4. If the fail-delay is non-zero, the cell is highlighted.
4. If you just interacted with a task (looked at or edited the settings,
did Run now, or cleared the fail delay) that row is highlighted,
and scrolled into view when the page loads.
To support this, some of the methods for loading the default tasks
have been extended with an optional argument to leave 'R' as 'R'
rather than replacing with a random number.
Also, mixed into this commit are a bunch of coding style improvements.
Sorry I did not separate them out, but ultimately this makes the
Moodle code better.
dirname() is a slow function compared with __DIR__ and using
'/../'. Moodle has a large number of legacy files that are included
each time a page loads and is not able to use an autoloader as it is
functional code. This allows those required includes to perform as
best as possible in this situation.
Some hosting providers have a requirement to prevent users making
modifications to the configuration of scheduled tasks as doing so may have
a negative impact not only on their own site, but also on the performance
of other sites (depending on host configuration). For example, if the
statistics or automated backup tasks were run every minute, this could have
a negative impact for other users).
Centralise management of all types of cron tasks with registration, scheduling,
parallel task conflicts(blocking) and running once off tasks, all using an
administration screen.
This is a combination of several issues:
MDL-25502: Added "black magic" task allocator for cron
MDL-25503: Add step to cron to run all scheduled tasks
MDL-25504 cron: Refactor to use scheduler
MDL-25505: Add an admin interface to schedule tasks via cron.
MDL-25507: Add support for adhoc tasks.