Scheduled Jobs
The “Scheduled Jobs” manager lists all cron jobs used to run automated processes at specified times. Further new cron jobs can be created based on a list of processors. The timing of jobs is important to ensure various related job processes are in a logical order. For example, importing users before target group assignment, followed by automatic course enrolment, then report subscriptions, and finally notifications just before work hours. It is additionally important to avoid different cron jobs running simultaneously which can cause a high database load.

Note: If the "Scheduled jobs" menu is not available it can be configured in the "Navigation" and would normally be created in the "Settings → System platform management" folder with the identifier "m_jobs". In terms of the cron timings, the imc Learning Suite uses a "Quartz" cron format that allows scheduling by seconds, minutes, hours, day of month, month, days of week, and year. Further information on forming a quartz cron can be found at https://www.freeformatter.com/cron-expression-generator-quartz.html.
Functions of the scheduled job manager
New
Crons are jobs that can be scheduled to run automatically at desired times or manually triggered to perform background software tasks. The use of crons is very common in web-based applications and the imc Learning Suite is no exception with a large amount of jobs to process on a regular basis including Notification distribution which is one of the larger jobs.
The cron is configurable in the "Scheduled jobs" function for example the "Notification" Cron Job. Typically, we would recommend that the Notification cron be configured to process somewhere between 7 am to 9 am which is after other important jobs have run and before the user's work day. The Cron Job checks which notifications need to be triggered that day and sends them to the recipients.
The Notification job is just an example. In the following, you’ll find a list of all available Scheduled jobs.
NotificationsNewCron expressions
The cron expression defines how often a cron job is run:
Seconds
Allowed values: 0-59 and ,-/Minutes
Allowed values: 0-59 and ,-/Hours
Allowed values: 0-23 and ,-*/Day of month
Allowed values: 1-31 and ,-*?/LWCMonth
Allowed values: 0-11 and ,-*/Day of week
Allowed values: 1-7 and ,-*?/LC#
Examples
0 0 12 * * ?
Fire at 12:00 PM (noon) every day0 0/5 14,18 * * ?
Fire every 5 minutes starting at 2:00 PM and ending at 2:55 PM every day; AND fire every 5 minutes starting at 6:00 PM and ending at 6:55 PM every day0 15 10 ? * 6L
Fire at 10:15 AM on the last Friday of every month
Per Job, it is possible to define if the job is available for a specific client. So with this, you could define the same job multiple times with individual cron expressions so that for each client the job is running at a specific time. It is also possible for the manual execution to only run the job manually for one specific client.
Edit
EditDelete
DeleteStart job
The “Start job” button can be used to execute the selected job directly. In addition, the job is automatically executed at the specified time
Full list of available cron jobs
AdobeConnectMeetingTemplateImportJob
Job used for the optional Adobe Connect virtual classroom connector to check if there are new virtual classroom templates available to the configured LMS user in Adobe. The virtual classroom templates are selectable in the LMS when creating an "Adobe Connect" media item. This is a small job that can be set to process periodically or manually.
AiccMonitor
Adjusts the entries in the database tables u_monitor_aicc and u_monitor_aicc_content. These tables are used by the "AICC Communication Monitoring" tool for the error analysis. On the basis of the attribute Maximum monitor entries" in the "Configuration > AICC" menu, this job deletes the oldest entries. No
AsynchUpdater
This job is used for the optional Vitero connector. When this job is running it will change the passwords of all the Vitero users in the system database that exist on Vitero side. It will change all passwords to new randomly generated ones.
AvetmissEvaluationCsvImport
AVETMISS is a reporting standard used by Australian registered training organisations (RTOs). This job is to enable migration of historical data to allow reporting AVETMISS data retrospectively.
AvetmissStartEndDateCsvImport
AVETMISS is a reporting standard used by Australian registered training organisations (RTOs). This job is to enable migration of historical data to allow reporting AVETMISS data retrospectively.
BuddyListHisotry
The buddy list job writes the number of logged-in ILS users into the database. In previous Learning Suite versions (CLIX12 and earlier) this related to a now obsolete function called the buddy list that enabled viewing which users were online.
CancelInactiveUsersJob
Job-related to meta tag "Automatic cancellation of inactive users" (ID 11813). The job processes courses with the meta tag ticked to remove "Passive" or "Inactive" participants that do not have a status of "Passed", "Failed" or "Cancelled". This job is a low load and can be run daily or periodically.
CancelUsersOnCancelledCoursesForReplicationProcess
This job is a clean-up job to cancel participants who have not completed (Passed or Failed) yet and have not canceled on a course where the planning status of the course was set to "Cancelled".
CertificationReset
Job-related to the optional "Certification" add-on module used for tracking progress towards accredited certifications (E.g. IDD, CPD/CPE). Check certification period ends update/reset certification status and compute new period once time is reached. Therefore; the job resets the number of points/hours achieved for a recertification to 0 after the specified date has been reached. For customers using certification this job can be run daily 001**?
CheckSolrAvailability
Search indexes are lost during a deployment and it is not an option for them to be available in the next half or full hour. This job was therefore created to be executed at five-minute intervals. After a new ILS starts, it is only executed once to ensure a quick rebuild of possibly lost search indexes during a deployment. 00/5***?
CleanUpMailingNotificationMonitor
Deletes internal emails and notifications that are older than the stated number (in days). The after number of days can be defined in the attribute deletionAfterNumberOfDays.
CleanUpPreviewEntries
The job relates to the “Course preview” function for administrators, tutors, and supervisors. When activated the job deletes all the data from the preview table with the last update older than 24h to ensure more accurate access data. The job will run in the background and an entry will be visible in the log file, with the start-end date & time. Recommended to run daily.
CloudSynchronization
This job is for having "System texts" changes reflected on all nodes of a multi-node environment. Without this job wording changes are only refreshed on the node the wording is changed. The parameter "Execute on each node" is to be ticked and the job can run every 15 minutes as the wording on ILP has additional caching for a maximum of 10 minutes.
ContentAutoUpdate
Job used with the "Automatic update" meta tag settings between courses and course templates. This job is recommended to run quite frequently or at least daily to ensure content updated in course templates is pushed through to current courses with updates enabled.
CoursePreparation
Sets courses and learning paths to the planning status “fixed” according to the meta tag “Automatically set to ‘fixed’".
CoursePreviewCleanUp
A scheduled job can be created by selecting the new job processor "CoursePreviewCleanUpJob". It can be run manually or created as a planned task, using a cron expression( for e.g. I created a test one with this cron expression 0 0 0 ? * 1L ). When executed, entries in the "component_preview_log" table with "last updated" older than 24h are deleted.
CourseProgressUpdateJob
The job ComponentProgressUpdateJob needs to be created and then run to bring the progress percentage of courses and learning paths in Learning Analytics. It needs to be run only once per system and does not need to be done per release. For releases before 14.19.0, this job is called CourseProgressUpdateJob.
CreateOrUpdateShopifyCatalogItems
The job relates to the optional Shopify payment gateway connector and is used to automatically create or update existing items in the LMS catalogue when there have been updates in Shopify. Recommended to run regularly for customers using the Shopify connector.
CreateSiteMaps
Job used when "Site map" settings are activated in the LMS to allow search engines to search through content; this is mainly for customers wanting to provide content to the general public. A site map essentially creates a map of specific LMS pages for search engines to search through content, E.g. catalogues, and index the context. The site map can be enabled globally in the "Configuration → Client" menu or individually per client in the "Clients" function. For customers wanting to enable site maps the job is recommended to run periodically on a weekly basis.
CreateSolrIndex
Performs a complete rebuild of the activated search indexes; For example, updating the front-end view of the catalogue structure and content assignment. In most cases, it is configured to run every half hour or hour and is not recommended to run more frequently. More frequent execution places a greater load on the database.
DeleteCreatedCertificatesJob
This job relates to the certificate export used for external systems and is influenced via the setting in certificate export configuration.
DefaultTempDirDeleteIlsEntries
Job to delete the files in the temporary directory of the Java process, E.g. this could be C:\tomcat\tempClean temporary files from the application server.
DeleteUsersJob
The job relates to Privacy Settings defined in the "Client → Access and security" tab. If the "Delay the execution of deletion request by" is configured with a value > 0 and a user of this client requests deletion or the admin triggers the deletion for this user, the user will be marked for deletion in today + <period> months. Once the deletion date is set, you can no longer re-trigger the deletion, the authentication status is set to passive, and finally the admin can no longer change the authentication status (e.g. from passive to active again). Once the job is executed, users with deletion dates in the past will be finally removed (either anonymized or really removed).
ExpiredCoursesToCompleted
The job is set for date-dependent courses where the end date is in the past and the current planning status is “Released” or “Fixed”. In addition, the job sets the planning status of the object to “Completed”.
GoToUpdateRefreshTokenJob
This job relates to customers using the option GoTo-Meeting connector for virtual classroom integration. As refresh tokens are only valid for 30 days and it might be the case that on customer systems none use GoTo-Meeting or GoTo-Webinar for longer times, an ILS Cron Job needs to be configured to keep the refreshToken replaced with a valid one. The recommendation is to have the refresh job running every hour.
GroupImport
Method that initiates the LDAP-based group import if this has been activated.
GenerateCertificatesJob
This job relates to the generation of certificates as PDF files. Certificates of the type “test certificate” or “skill certificate” are not taken into account. The generation is done for courses, programmes and certificates with the type “system generated”. The export is for successfully completed users and only for courses which have a certificate assigned. The generated certificates are saved in the folder /data/certificate/job
. If the course is updated with a new version of the certificate a new certificate file will be generated as well.
The PDF files follow a naming structure:
General structure: revokedStatusWhenAvailable_personIDAsDefault_componentID_certificateID_major version_statusNumber_orderedDate_timeStamp
Example: rev_734899_727018_623651_8_12_2025_03_05_1741175371591.pdf
When the revoked status applies only “rev” is added to the beginning of the file name, while the rest remains unchanged.By default the user attribute personID is used in the file name. The attribute used can be changed via the setting in certificate export configuration.
If the user for whom the file is generated has no information for the selected attribute instead “unknown_user” is added to the file name.
GenericContentImporterMediaUpdate
This scheduled job maintains the integrity and accuracy of metadata associated with third-party content within the LMS. It systematically checks for updates from the content provider, including any modifications to the title or description etc., and makes necessary adjustments to reflect these changes in the media. If updates are available, a new version of the object is created.
GenericContentImporterParticipantStatusUpdate
Upon the successful establishment of the connector, the job assesses whether there are users with existing learning progress in a course on the provider's platform. It subsequently transfers this progress to the LMS. This process is essential as it ensures the synchronization of user progress that was not captured during the initial import of third-party content.
JobSchedulerDuplicateCheck
The job looks if another job was started a second time while the first was still running and deletes this second job.
License
Job to check available licenses to send alerts when active license numbers are exceeded. The recipient of the notification is defined globally in the "Configuration → Mailing" function or client-specific in the "Client → Email" tab.
MailMonitorStaggering
For this job, a defined number of emails (registration messages, notifications, logic emails) identified to be forwarded externally are sent for each cycle. The forwarding depends on the attribute mailMonitorStaggeringAmount.
If the attribute is not defined, only a log message will be written
If the attribute is set to the value 0, all entries that still need to be forwarded will be sent
If the attribute is set to the value >0, the oldest x entries to be forwarded will be sent for each job execution.
Only one attempt will be made to send an email. If this does not work, it will be listed as an error in the monitor (corresponds to the behaviour with no staggering).
Notification
Job that triggers all time-based notifications to send; For example, reminder notifications x days before or after a training.
OIDCAuthNonceCleanerJob
This job deletes nonce entries of successful OIDC authentications in the LMS database. When an OIDC authentication request is made a nonce is recorded in the LMS database and is basically a unique transaction ID between the two systems.
OrganizeQTITaskFolder
This job optimises the storage of files used in test questions (performance improvement).
de.imc.qti.util.job.OrganizeQTITaskFolder
OSReportSubscription
This job is used to generate all subscribed reports and email links for subscribers to access on their preferred days of the week. This job is recommended to run daily given reports can be subscribed to each day of the week. The job can also be quite large so best to execute in the early hours of the morning before working times when no other jobs are running.
OSReportSubscriptionFileDeletion
Job to delete reports generated by the report subscription function which reduces the disc space used on the content server. Given the report subscription reports are generated at least once per week, this job could be set to run weekly.
ParticipantAutomaticRegistration
Automatically registers users for courses or course templates on the basis of their group membership or job profile.
PasswordChangeExpiryCheck
Check for the password validity period and prompt the user to change their password on the next login when the time is reached. This is an important job for customers using local login with security requirements to change passwords on a regular basis. Recommended to run the job daily and can be performed at any time.
PayPalStatusUpdate
Provides the current payment status of PayPal transactions. The job runs every few minutes to check for PayPal payment responses if not received immediately.
PrerequisiteCheck
This job checks and updates if enrolled users who initially did not meet prerequisite rules have done so before the due date. There is a prerequisite status column in the "Participant administration" function that displays the check result.
PrerequisitesOverdueCancelJob
Job to check which users enrolled in a course did not achieve minimum prerequisites by the due date and cancel their enrolment. This job relates to meta tags and settings:
"Automatic cancellation based on not fulfilled prerequisites" (ID 11801) being ticked,
"Due date for the fulfillment of the mandatory prerequisites" (ID 12703) being equal or greater than the current date, and
Prerequisites must have been met at the time of enrolment" (ID 11838) being unticked.
ProgrammeCurriculumLevelStatus
If the setup of a level based learning path was changed, the level of the participants is updated with this cronjob.
ProgrammeCurriculumLevelStatusUpdateJob
Recalculates certifications and calculates changes to the learning logic and then updates parameters for the users
ProgrammeCurriculumScheduling
The scheduled dates will be removed from "Display element from" column or "Display element till date" column if the corresponding action to it has been conducted by the cron job.
ProgrammeRecertificationAsignment
Job to perform scheduling and checks to see whether the start, due, or end date (for all defined recertification sections) matches the actual date.
ProgramRecertificationCompletionJob
Job is used for the recertification of learning elements in new learning periods
ProgramRecertificationStatusJob
If recertification was done in the past and now the new period is available, the component needs to be set to achieved.
ProgramStatusUpdateForLearners
Cron job that updates the user status on the learning paths for the users who have completed the content of the learning path or have fulfilled the learning logic outside the learning path context. The changes to the user portfolio are logged in a logging table called program_status_update_log. This cronjob only affects the user status once. If the status is reset manually via the ILS interface, the user status of the program that has already been processed is not changed again by the cronjob. Function: Changes the status of a user from BOOKED to COMPLETED if the program should have been terminated due to the progress or the learning logic with the meta tag: 11814 (learning path completion by).
PushNotificationScheduler
Job to send notifications to the mobile Apps. The push notifications also need to be enabled in the "Configuration" manager and will require a server key to be set up by imc Hosting team (for imc "Hosted" solutions).
RefreshJob
Controls the refreshed registration of participants on refresher courses.
RemoveOutdatedReportsJob
This job is related to the "Report subscription" function for the automatic removal of reports that were generated as part of a report subscription to be sent by e-mail. Deletion of subscription and export reports that are 10 days and older from the data folder. This job can run daily.
ReportCallCleanUp
de.imc.clix.report.externalreport.job.ReportCallCleanupJob
Scorm2004ChoiceInteractionResponseDbCleaner
This job cleans the wrong formatted entry for cmi.interactions.0.correct_responses.0.pattern in case of .type choice. This data is not correct according to SCORM standard and needs to be delete.
ScormWbtExternalMigration
A job used for bulk migration of SCORM packages in content migration projects. This is a job intended for use by the imc Technical Services team, normally during initial migration projects.
EqsResetCoverageDataJob
This job will update the course coverage for an already created rule and if more courses are added inside it.
de.imc.clix.eqs.EqsResetCoverageDataJob
ShopifyProcessWebhookJob
Job to process the webhook which is required to allow Shopify to inform the LMS on the order payment event, which the LMS will need in order to process the enrollment of the user after the purchase.
de.imc.clix.webservices.client.shopify.job.ShopifyProcessWebhookJob
SkillExpiration
Job to detect skills held by users with expiry dates greater than the current date to process updating of the achieved skill levels.
SkillTermination
Job to update the skill display and values of users for skills that expire automatically.
SolrIndexActualization
The SOLR report indexes with exception of the learning path indexes will get actualized by this job. It should be configured to run every 15 minutes.
SolrIndexFullBuild
Performs a complete rebuilt for all active SOLR report indexes which are currently not available meaning which have never been built before or for which a new full build was initiated. Learning path SOLR report indexes are fully rebuild automatically with each run since delta actualization is not feasible for them. There are some technical differences to search indexes which require a separate job. It should be configured to run just once a day.
de.imc.clix.core.solr.SolrIndexFullBuildJob
StdCourseImportJob
Job used to process a csv file to import Courses based on existing Course Templates. Normally utilised by the imc Business Consulting team during implementation projects.
StdCourseSubscriptionImportJob
Job used to process an uploaded csv file to assign users to imported courses for training history migrations; normally with a Passed status and completion date. The import is utilised by the imc Business Consulting team during implementation projects.
StdCourseTemplateImportJob
Job used to process a csv file to import Course Templates derived from standard Course Types. Normally utilised by the imc Business Consulting team during implementation projects to import training records from external systems.
StorageUpdater
No normal update classes can be used as the storage service is not started when the normal update classes are executed. This CronJob checks for updates every 5 minutes. On systems that have no storage integrated at all, the job runs, but the registered classes are never executed.
TargetGroupPersonAssignment
Automatically allocates users to target groups and executes the rules and conditions of the target groups.
TeamExercisePublishCorrectionJob
Publishes corrections on the defined date.
TempFilesDelete
This job is to delete temporary files that are created as a result of uploads, for example. The temporary files are deleted in the data/temp and <s3bucket>/temp. 0111*?
TincanAuthTokenDeletion
Job-related to Tin Can xAPI media items. When active this job deletes old authentication tokens for xAPI WBTs in the database. Only needed for customers using the Tin Can xAPI media. 0201**?
TrackingCalculation
Used to compress the data written during system tracking. This enables a more efficient execution of our tracking reports. Data summarization job for reports e.g. "Registration" report. 011*?
TranslationImport
Configures the automatic import of translation files (translation workflow), which are saved in a defined location on the content server. This location is configured in the "Configuration > Languages" function.
UpdatePersonSearches
Updates the user search configuration (required in cluster operation).
UserImport
Job to determine at which time the user import job runs for CSV imports where files have been placed on the content server. This can job can produce heavy database loads and is recommended to run prior to jobs including XMLGroupImport, TargetGroupPersonAssignment, and ParticipantAutomaticRegistration.
UserTerminate
Checks whether the termination date of a user has been reached. Job to automatically check which users are to be automatically made Passive x days after enrolment or last login which is configured in the "Client" function and personal attribute "DEACTIVATIONMODE_ID".
VirtualClassroomParticipantAttendance de.imc.clix.comp.edu.lti.provider.virtualclassroom.cronjob.VirtualClassroomParticipantAttendancePortfolioUpdate
WaitingListCancellationJob
Job relates to the meta tag "Automatic cancellation from the waiting list on the start date" (ID 11816) equaling "Yes". The job checks if there are still users on course waiting lists after the start date and removes them. This job can be run daily or periodically.
WebexParticipantAttendance
Sync Webex starts, ends, and duration.
WhatsNew
Identify content that is newly assigned to courses and catalogues. Sends the “What’s New” notification.
XMLGroupImport
Initiates all configured XML group imports that have an active scheduler configuration