Configuring Scheduled Synchronization
Each scheduled reconciliation and liveSync task requires a schedule configuration file in your project's conf
directory. By convention, schedule configuration files are named schedule-schedule-name.json
, where schedule-name is a logical name for the scheduled synchronization operation, such as reconcile_systemCsvAccounts_managedUser
.
Schedule configuration files have the following format:
{ "enabled" : boolean, true/false "type" : "string", "repeatInterval" : long integer, "repeatCount" : integer, "persisted" : boolean, true/false "startTime" : "(optional) time", "endTime" : "(optional) time", "schedule" : "cron expression", "misfirePolicy" : "optional, string", "invokeService" : "service identifier", "invokeContext" : "service specific context info" }
These properties are specific to the scheduler service, and are explained in Schedule Tasks and Events.
To schedule a reconciliation or liveSync task, set the invokeService
property to either sync
(for reconciliation) or provisioner
for liveSync.
The value of the invokeContext
property depends on the type of scheduled event. For reconciliation, the properties are set as follows:
{ "invokeService": "sync", "invokeContext": { "action": "reconcile", "mapping": "systemLdapAccount_managedUser" } }
The mapping
is referenced by its name
in the conf/sync.json
or by its individual mapping file name.
For liveSync, the properties are set as follows:
{ "invokeService": "provisioner", "invokeContext": { "action": "liveSync", "source": "system/ldap/account" } }
The source
property follows the convention for a pointer to an external resource object, and takes the form system/resource-name/object-type
.
Important
When you schedule a reconciliation operation to run at regular intervals, do not set "concurrentExecution" : true
. This parameter enables multiple scheduled operations to run concurrently. You cannot launch multiple reconciliation operations for a single mapping concurrently.