Referência SQL do reator de tarefas¶
Objetos e procedimentos de banco de dados¶
Os seguintes objetos de banco de dados são criados por meio do arquivo task_reactor.sql
.
TASK_REACTOR SCHEMA¶
Esquema com versão contendo algum objeto de banco de dados do reator de tarefas no conector.
TASK_REACTOR_INSTANCES SCHEMA¶
Esquema sem versão contendo algum objeto de banco de dados de instância do reator de tarefas no conector.
TASK_REACTOR_INSTANCES.INSTANCE_REGISTRY¶
Esta tabela é criada para armazenar dados sobre instâncias do reator de tarefa, a fim de permitir rastrear e gerenciar instâncias existentes durante o tempo de execução do aplicativo. A tabela é criada no esquema TASK_REACTOR_INSTANCES
.
instance_name
VARCHAR
is_initialized
BOOLEAN
is_active
BOOLEAN
TASK_REACTOR.DISPATCHER(INSTANCE_SCHEMA_NAME VARCHAR)¶
Este procedimento invoca o Java DispatcherHandler.dispatchWorkItems
e permite despachar itens de trabalho.
TASK_REACTOR.SET_WORKERS_NUMBER (WORKERS_NUMBER NUMBER, INSTANCE_SCHEMA_NAME VARCHAR)¶
Este procedimento invoca o Java SetWorkersNumberHandler.setWorkersNumber
e permite definir o número de trabalhadores.
TASK_REACTOR.CREATE_INSTANCE_OBJECTS¶
Parâmetros de entrada:
INSTANCE_SCHEMA_NAME
VARCHAR
WORKER_PROCEDURE_NAME
VARCHAR
WORK_SELECTOR_TYPE
VARCHAR
WORK_SELECTOR_NAME
VARCHAR
EXPIRED_WORK_SELECTOR_NAME
VARCHAR
O procedimento cria todos os objetos de instância necessários para uma fluxo de Task reactor
preciso e valida aqueles que ainda não deveriam estar inicializados. No fim do processo, ele insere um novo registro de instância na tabela.
Possíveis erros incluem:
INSTANCE_NOT_FOUND
- Não existe instância com este nome.INSTANCE_ALREADY_INITIALIZED
- A instância com este nome já foi inicializada.DEFAULT_PROCEDURE_VALIDATION_EXCEPTION
- Procedimento não encontrado.SCHEMA_WITH_THE_SAME_NAME_ALREADY_EXISTS
- Esquema com o mesmo nome já existe.CREATING_TR_INSTANCE_EXCEPTION
- Algo inesperado deu errado ao criar uma nova instância do reator de tarefas. Nenhuma instância foi criada.
TASK_REACTOR.INITIALIZE_INSTANCE¶
Parâmetros de entrada:
INSTANCE_SCHEMA_NAME
VARCHAR
WAREHOUSE_NAME
VARCHAR
DT_SHOULD_BE_STARTED
BOOLEAN
DT_TASK_SCHEDULE
VARCHAR
DT_ALLOW_OVERLAPPING_EXECUTION
BOOLEAN
DT_USER_TASK_TIMEOUT_MS
VARCHAR
O procedimento inicia todas as instâncias não inicializadas dentro da mesma instância de banco de dados. Consiste em verificar se a instância existe ou se ela já não foi inicializada e, em seguida, criar tarefas do despachante e iniciar essa tarefa, se necessário.
O procedimento termina com sucesso com:
{
"response_code": "OK",
"message": "Instance has been initialized successfully."
}
Possíveis erros incluem:
INSTANCE_NOT_FOUND
- A instância não existe.INSTANCE_ALREADY_INITIALIZED
- A instância com este nome já foi inicializada.
TASK_REACTOR.PAUSE_INSTANCE¶
Parâmetros de entrada:
INSTANCE_SCHEMA
VARCHAR
O procedimento inicia o processo de pausar uma determinada instância do reator de tarefa e retorna OK como resposta. Ele inicia um trabalho que interrompe de forma assíncrona todas as tarefas do trabalhador e a tarefa do dispatcher. Caso uma tarefa do trabalhador já estivesse executando uma ingestão, a tarefa não será interrompida imediatamente, mas será interrompida após a conclusão da ingestão.
Nota
A lógica deste procedimento já é utilizada em Pausa do conector, portanto não é necessário usar esse procedimento como parte da parada de todo o conector.
O procedimento termina com sucesso com:
{
"response_code": "OK"
}
TASK_REACTOR.RESUME_INSTANCE¶
Parâmetros de entrada:
INSTANCE_SCHEMA
VARCHAR
O procedimento inicia o processo de retomada de uma determinada instância do reator de tarefa e retorna a resposta OK. Ele retoma a tarefa do dispatcher e inicia um trabalho que retoma de forma assíncrona todas as tarefas do trabalhador que já tenham trabalho atribuído.
Nota
A lógica deste procedimento já é utilizada em Retomada do conector, portanto não é necessário usar esse procedimento como parte da retomada de todo o conector.
O procedimento termina com sucesso com:
{
"response_code": "OK"
}
TASK_REACTOR.UPDATE_WAREHOUSE_INSTANCE¶
Parâmetros de entrada:
WAREHOUSE_NAME
VARCHAR
INSTANCE_SCHEMA
VARCHAR
O procedimento inicia o processo de alteração do warehouse para uma determinada instância do reator de tarefa. Ele altera o warehouse da tarefa do dispatcher e então inicia um trabalho que altera de forma assíncrona o warehouse de todas as tarefas do trabalhador.
Nota
A lógica deste procedimento já é utilizada em Atualizar warehouse, portanto, não é necessário usar esse procedimento como parte da atualização do warehouse para todo o conector.
O procedimento termina com sucesso com:
{
"response_code": "OK"
}
Possíveis erros incluem:
INSTANCE_NOT_FOUND
- A instância fornecida não existe.TASK_REACTOR_INSTANCE_IS_ACTIVE
- A instância do reator de tarefa não foi pausada antes de usar este procedimento.
Procedimentos internos¶
Todos os procedimentos abaixo são usados apenas para uso interno no script de configuração task_reactor
e não deve ser usado externamente.
TASK_REACTOR.CREATE_INSTANCE_SCHEMA (INSTANCE_SCHEMA_NAME VARCHAR)¶
Este procedimento cria um novo esquema com identificador denominado instance_schema_name
, e então lança uma nova exceção se o esquema não puder ser criado.
Possíveis erros incluem:
SCHEMA_WITH_THE_SAME_NAME_ALREADY_EXISTS
- Esquema com o mesmo nome já existe.
TASK_REACTOR.VALIDATE_PROCEDURE_EXISTENCE¶
Parâmetros de entrada:
PROCEDURE_NAME
VARCHAR
PROCEDURE_TYPE
VARCHAR
Este procedimento valida se os procedimentos definidos não existem e então gera uma nova exceção.
Possíveis erros incluem:
WORKER_PROCEDURE_NOT_FOUND_EXCEPTION
- Procedimento do trabalhador não encontrado.WORK_SELECTOR_PROCEDURE_NOT_FOUND_EXCEPTION
- Procedimento do seletor de trabalho não encontrado.DEFAULT_PROCEDURE_VALIDATION_EXCEPTION
- Procedimento não encontrado.
TASK_REACTOR.CREATE_QUEUE¶
Parâmetros de entrada:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
STREAM_NAME
VARCHAR
O método auxiliar para Task Reactor
, ele oferece a criação de uma tabela de filas com o nome instance_schema_name.table_name
e as seguintes colunas:
ID
STRING
RESOURCE_ID
STRING
DISPATCHER_OPTIONS
VARIANT
WORKER_PAYLOAD
VARIANT
TIMESTAMP
DATETIME
Então ele cria um fluxo com o nome instance_schema_name.stream_name
se ainda não existir.
TASK_REACTOR.CREATE_WORKER_REGISTRY_SEQUENCE¶
Parâmetros de entrada:
INSTANCE_SCHEMA_NAME
VARCHAR
SEQUENCE_NAME
VARCHAR
O método auxiliar para Task Reactor
, que oferece a criação de sequência para registro de trabalhadores com o nome da sequência instance_schema_name.sequence_name
.
TASK_REACTOR.CREATE_WORKER_REGISTRY¶
Parâmetros de entrada:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
SEQUENCE_NAME
VARCHAR
O método auxiliar para Task Reactor
, que oferece a criação de registros de trabalhadores consiste em uma tabela com o nome instance_schema_name.table_name
e colunas:
WORKER_ID NUMBER
com sequência padrãoinstance_schema_name.sequence_name
CREATED_AT
DATETIME
UPDATED_AT
DATETIME
STATUS
STRING
TASK_REACTOR.CREATE_WORKER_STATUS_TABLE¶
Parâmetros de entrada:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
Um método auxiliar para Task Reactor
, que oferece a criação de uma tabela de status para um trabalhador com o nome instance_schema_name.table_name
e colunas:
WORKER_ID
NUMBER
TIMESTAMP
DATETIME
STATUS
STRING
TASK_REACTOR.CREATE_CONFIG_TABLE¶
Parâmetros de entrada:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
WORKER_PROCEDURE_NAME
VARCHAR
WORK_SELECTOR_TYPE
VARCHAR
WORK_SELECTOR_NAME
VARCHAR
EXPIRED_WORK_SELECTOR_NAME
VARCHAR
IS_INSTANCE_REGISTERED
BOOLEAN
O método auxiliar para Task Reactor
, oferece a criação de uma tabela de configuração denominada instance_schema_name.table_name
com colunas de chave e valor. Em seguida, ele insere os dados de configuração na tabela, caso ainda não estejam registrados com os seguintes valores:
WORKER_PROCEDURE
WORK_SELECTOR_TYPE
WORK_SELECTOR
SCHEMA