...
Gliffy Diagram | ||||
---|---|---|---|---|
|
Create a new recent-memberships group
- Create or navigate to the group which holds the recent memberships
- Click on the More Tab → Loader, and configure a recent memberships loader
- Select the "from group"
- Select the "days of recent memberships". Note, this can be a decimal
- Identify if include current memberships
- Wait a minute and if the change log is up to date the recent-memberships group will be created and populated
- Nightly loader job will sync things up but it should be up to date in near real time using the change log
- Note, if you remove these recent-memberships attributes, the recent-memberships group and members will still be there. You will need to delete the orphaned recent-memberships group
Configuration
To disabled the loader job edit this in grouper.properties
...
Code Block |
---|
# Recent-memberships consumer will update recent-memberships groups as memberships/attributes change # {valueType: "class", mustExtendClass: "edu.internet2.middleware.grouper.changeLog.ChangeLogConsumerBase"} changeLog.consumer.recentMemberships.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbConsumer # recent-memberships runs as change log consumer # {valueType: "string"} changeLog.consumer.recentMemberships.quartzCron = # if this many records happens in one change log session, just do a full loader job # {valueType: "integer", defaultValue: "100"} changeLog.consumer.recentMemberships.maxUntilFullSync = 100 # publishing class for recent-memberships # {valueType: "class", mustExtendClass: "edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbMessagingPublisher"} changeLog.consumer.recentMemberships.publisher.class = edu.internet2.middleware.grouper.app.serviceLifecycle.GrouperRecentMembershipsChangeLogConsumer |
Internal structures
- Configuration is stored in attributes on the "to" group
- In order to make the loader query more efficient and simpler to troubleshoot, a view consolidates the attributes into one simple place to get recent membership configuration
- This is synced to a table for performance reasons
- The grouper_time table is consulted to make this database agnostic
- A view on that table the PIT view will show the memberships to be loaded
Script a recent membership group
Just change the first 4 params and it will do the rest
...