Hub managers

Cron

The Cron component runs the hub's scheduled work. This chapter is a catalogue of the jobs a hub can schedule and the settings each one takes.

How the scheduler works — the tick, the muse cron:jobs command, the job list, the edit form, and the IP whitelist — is covered in Scheduled tasks. Read that first. Nothing in this chapter is a substitute for it, and in particular that chapter carries the fact that makes this one matter: a new hub has three jobs and only one of them is published, so every feature listed below is doing nothing until somebody adds a job for it.

Use this chapter the other way round from most of the book. You do not read it through. You arrive at it having noticed that something on the hub never happens — the digest email nobody gets, the group membership that never expires, the DOI that is never issued — find the event in the tables below, check that its plugin is enabled, and then go to Scheduled tasks to create the job.

Where the jobs come from

The component owns no work of its own. Every job is a plugin event.

When you open a job's edit form, the component fires cron.onCronEvents and each enabled plugin in core/plugins/cron/ answers with the events it offers. Those answers fill the Event drop-down, grouped by plugin. A plugin that is disabled contributes nothing, so its events disappear from the drop-down — and any job already pointing at one of them stops running.

Each event may also declare a group of parameters. Those come from a <params group="..."> block in the plugin's manifest, and the edit form swaps the matching block in when you choose the event. An event with no such block shows No parameters found.

The component's submenu has two entries: Jobs, and a Plugins link that jumps straight to the cron plugin group in the Plugin Manager. The second appears only for someone who can manage plugins.

The cron events reference lists every event with the plugins that listen for it.

The jobs

Fourteen cron plugins ship with the hub. The Event column gives the name as it appears in the drop-down; the identifier in parentheses is what is stored on the job.

Cron - Activity

Event What it does Parameters
Members Email Digest (emailMemberDigest) Mails each member a digest of recent activity on the hub none

The plugin's own Email Transport setting chooses how digests are delivered.

Cron - Cache Handler

Event What it does Parameters
Remove old system CSS files (cleanSystemCss) Deletes stale generated CSS from the cache directory none
Trash expired cache data (trashExpiredData) Runs cache garbage collection none

Cron - Courses

Event What it does Parameters
Sync passport badge statuses (syncPassportBadgeStatus) Reconciles badge state with the badge provider none
Email instructor digest (emailInstructorDigest) Mails course instructors a digest Select course to receive emails — a course, or All

Cron - Forum

Ships disabled. Its event is not on the Event menu until you enable the plugin at Extensions → Plugins. It is the only cron plugin in this state; the other thirteen are enabled on a new hub.

Event What it does Parameters
Group forum email digest (emailGroupForumDigest) Mails group members a digest of new forum posts none

Cron - Groups

Event What it does Parameters
Remove group asset folders that were abandoned. (cleanGroupFolders) Deletes files left behind by deleted groups none
Send Group Announcements (sendGroupAnnouncements) Mails pending group announcements none
Revoke group memberships whose end date has passed (expireGroupMemberships) Removes members past their membership end date none
Warn members whose group membership is about to end (notifyExpiringMemberships) Mails a warning before a membership expires none

Cron - Members

Event What it does Parameters
Calculate point royalties (onPointRoyalties) Distributes point royalties on answers, reviews and resources none

Cron - Newsletter

Event What it does Parameters
Process any newsletter mailings in the queue. (processMailings) Sends queued newsletter mail Queued Emails Limit: — how many to send per run. Default 25
Process IP addresses to location data for newsletter email actions. (processIps) Resolves recorded IP addresses to locations IPs Limit: — how many to resolve per run. Default 100

Cron - Projects

Event What it does Parameters
Compute and log overall projects usage stats (computeStats) Rolls up project usage figures none
Auto sync project repositories connected with GDrive (googleSync) Syncs projects connected to Google Drive none
Run git gc for project repos to optimize disk usage (gitGc) Garbage-collects project Git repositories none

Cron - Publications

Event What it does Parameters
Email monthly publication stats to authors (sendAuthorStats) Mails authors their monthly figures List of user ids of authors — a comma-separated allow-list; empty means everyone
Compute unique user stats from text logs (rollUserStats) Rolls raw log lines into unique-user counts none
Archive publications (via mkAIP) when grace period expired (runMkAip) Hands expired publications to the archive tool none
Issue master DOI (issueMasterDoi) Registers the DOI for publications that lack one none
Update FTP file links (updateFtpLinks) Refreshes links to files served over FTP Start Date — how far back to look. Defaults to yesterday
Build publication download bundles (async) (buildPublicationBundles) Pre-builds the zip bundles a publication offers none

runMkAip does nothing unless com_publications has an archive script configured and a non-zero grace period. With no grace period, publications are archived on approval and the job is unnecessary.

Cron - Resources

Event What it does Parameters
Issue master DOI (issueResourceMasterDoi) Registers the DOI for resources that lack one none
Audit resource data (auditResourceData) Checks resource records for problems Batch number (default 500) and How often to recalculate (default Once a month)
Email member latest releveant entries (emailMemberResources) Mails members newly published resources matching their interests Batch number (300), Items to display (3), How often to recalculate (Once a week), Email subject
Calculate Ranking (updateResourceRanking) Recalculates resource ranking scores Batch number (100) and How often to recalculate (Once a week)

Both events matter only on a hub whose Engine is Apache Solr. On a Basic hub there is no index, and neither event does anything.

Event What it does Parameters
Process Queue (processQueue) Nothing. See the warning below none
Run Full Index (runFullIndex) Re-indexes every component in the Indexed state, in batches none

Run Full Index is the one worth scheduling, and only as a safety net: indexing on a Solr hub is immediate, so a healthy hub does not need it. Nightly or weekly is right; anything more frequent will not finish before it starts again.

Cron - Storefront

Event What it does Parameters
Email SKUs and Products Publish Down Notifications (emailPublishDownNotifications) Warns before a product or SKU unpublishes Publish Down Notification 1 and 2 — days before the publish-down date

Cron - Support

Event What it does Parameters
Close tickets (onClosePending) Closes tickets matching a filter, with a closing message A large filter: up to three statuses, severity, last activity, group, assignment, owners, submitters, who to notify, tags to include or exclude, and the closing message
Email reminder for open tickets (sendTicketsReminder) Reminds owners about open tickets Tickets with severity, For users in group
Email for tickets with specified params (sendTicketList) Mails a list of tickets matching a filter The same filter as Close tickets, plus Open/Closed and Created
Remove temporary upload files and directories (cleanTempUploads) Deletes abandoned ticket attachments Older than — 1 day to 1 year

Cron - Users

Event What it does Parameters
Remove temporary acounts that have been created and abandoned during the third party authentication process. (cleanAuthTempAccounts) Deletes half-finished third-party sign-ups none

Running and deleting jobs

The job list's toolbar carries Run, Publish, Unpublish, Deactivate, New, Delete and Options.

To run a job immediately, tick it and press Run. The job executes in that request, and its next run time is recalculated from its recurrence. Because jobs claim themselves before running, a manual run cannot collide with a scheduled tick.

To remove a job, tick it and press Delete. Deleting is permanent; there is no trash for cron jobs. Unpublishing a job stops it running while keeping the record, which is usually what you want.

Rewritten and checked against 2.4-main @ 009ec973b7 on 2026-09-10.