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."
}
Copy

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"
}
Copy

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"
}
Copy

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"
}
Copy

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ão instance_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