Unify and manage your data

Tasks API

Learn about running Reltio background tasks and how to support LCA execution with reference attribute payloads.

A task is a Reltio REST API background process used when you have large tasks that cannot be completed within one REST request (for example, re-indexing).

LCA compatibility and reference attributes

Important: If your tenant uses LCA (Lifecycle Action) hooks that depend on reference attributes, Reltio now automatically includes reference attributes in the entity payloads for background tasks, unless the behavior is explicitly disabled.

The alwaysLoadReferenceAttributesInBulkUpdateTask parameter is treated as true by default when not present in the tenant's physical configuration. To disable this behavior, you must explicitly set the parameter to false under optionalParameters.

This ensures bulk tasks include reference attributes in the LCA input payload, similar to standard create and update operations standard create/update operations. Without this setting, or if explicitly disabled, background tasks may send incomplete entity payloads to LCA hooks, omitting reference attributes like MainSubstance.PreferredName, which can cause incorrect values to be calculated or applied.

This behavior affects the following background tasks:

  • EmailVerificationTask
  • GenerateReltioIdTask
  • LookupsSyncDataTask
  • ReCleanseDataTask
  • ReloadLookupsDataTask
  • RemoveEndDatesTask
  • SurrogateCrosswalksRecalculationTask
  • UpdateAttributesTask

For more information, see Tenant Configuration Parameters Reference.

Activity log behavior

Note: By default, any changes made by tasks (except for UpdateAttributesTask) do not go into the activity log. Optionally, this behavior can be changed for ReCleanseDataTask, CassandraCrosswalksConsistencyTask, RelationsDuplicatesTask, RemoveAttributeDuplicatesTask, SurrogateCrosswalksRecalculationTask, DeleteEntitiesByTypeTask, PurgeSourceDataTask, MergeAutoMatchesTask, and RebuildMatchTableTask by setting the useActivityLogInTasks property to true in the physical tenant configuration.

Task properties

Each task has the following properties:

Task Properties
PropertyDescriptionType
idUnique ID of the task.String
createdByID of the user who created this task.String
createdTimeTimestamp when the task was created.UTC timestamp, ms
updatedByID of the user who updated this task (for example, who canceled/paused the task).String
updatedTimeTimestamp when task was most recently updated.UTC timestamp, ms
nameName of the task.String
startTimeTime when the task was started.Date
endTimeTime when the task was completed.Date
pausedTimeTime when task was paused (only for task with PAUSED status).Date
typeType of task.String
parametersSet of parameters of the task.Map<String, String>
createdOnHostHost name of the API node where the task was created.String
executedOnHostHost name of the API node where the task is being executed / was executed.String
statusStatus of the task (see a list of possible statuses below).String
currentStateSet of fields which represent the current state of the task (for example: numberOfProcessedObjects).Map<String, Object>
durationDuration of the task.String
parallelExecutionThe task can be executed simultaneously with another task for the same tenant if this property is true. Otherwise, all tasks for the same tenant will be processed one by one (it does not matter how many API nodes are present in the cluster). Default is false.Boolean
nodesGroupDetermines the group of nodes where this task can be executed.

Default group: default.

String
numberOfFailedToPublishEventsWhen some events generated by the task will fail to be submitted to an external event hub.Integer

Task statuses

The possible statuses for tasks are:
  • CANCELING
  • CANCELED
  • COMPLETED
  • COMPLETED_WITH_ERRORS
  • FAILED
  • PAUSED
  • PAUSING
  • PROCESSING
  • SCHEDULED
  • SCHEDULED_POLL
  • WAITING_FOR_QUEUE
  • WAITING_FOR_RESOURCE

For more information, see Status of an Export Task.

Execution behavior

A new task is put into the SCHEDULED tasks queue. Any free API node able to execute tasks will then start executing this task. Because each API node checks the scheduled tasks every five seconds, task execution may not occur immediately.