Class: Scheduler

@nginstack/engine/lib/scheduler/Scheduler~ Scheduler


new Scheduler()

Classe que permite o agendamento da execução de scripts.

A execução agendada de um script é útil para permitir a execução automática de processos rotineiros. Ela também é útil para implementar operações off-line, permitindo que um script que não possa ser executado em um momento de indisponibilidade do banco de dados ou conexão possa ser executado posteriormente quando a conexão for restabelecida.

Um script agendado não tem acesso à interface com o usuário, nem tem acesso às variáveis request e response. Ele deve ser desenvolvido com essas restrições e um eventual resultado a ser comunicado para o usuário deve ser realizado por meio de logs, arquivos, email ou alterações na base de dados.

Members


failingTaskCount :number

Quantidade de scripts agendados no Engine corrente que falharam na última execução.

Type:
  • number

maxConcurrentTaskCount :number

Quantidade de scripts que serão executados concorrentemente pelo scheduler. Por padrão, o Engine permite a execução de quatro scripts.

Type:
  • number

maxSimultaneousTasks :number

Propriedade legada equivalente a maxConcurrentTaskCount.

Type:
  • number
Deprecated:
  • Utilize ´maxConcurrentTaskCount`.

runningTaskCount :number

Quantidade de scripts em execução no agendador de scripts do Engine corrente.

Type:
  • number

taskCount :number

Quantidade de scripts agendados no Engine corrente.

Type:
  • number

Methods


<static> getInstance()

Obtém uma instância compartilhada desta classe.

Returns:
Type
Scheduler

checkIntegrity()

Verifica a integridade do banco de dados onde são armazenados os agendamentos dos scripts.

É gerado um erro caso seja detectada alguma inconsistência. Mais detalhes dos problemas identificados são registrados no log do Engine.


delTasks(taskIds [, userId] [, password])

Remove as tarefas informadas por meio do seu identificador único, obtido na coluna "iUniqueId" do DataSet retornado pelo método getTasks.

Parameters:
Name Type Argument Description
taskIds string | Array.<string>

Identificador único das tarefas a serem removidas.

userId string <optional>

Nome ou e-mail do usuário que será utilizado para remover as tarefas. Caso não seja informado, será utilizado o usuário corrente da sessão.

password string <optional>

Senha do usuário que será utilizada para remover as tarefas.


getCurrentTaskId()

Obtém o identificador único da tarefa em execução no ambiente corrente JavaScript.

Se o ambiente JavaScript corrente não for associado a uma tarefa do Scheduler, será retornado null.

Returns:

Identificador único da tarefa em execução ou null caso não haja uma.

Type
string
Example
const taskId = scheduler.getCurrentTaskId();
if (taskId) {
  const task = scheduler.getTaskById(taskId);
  task.name; // => 'Task name'
} else {
  throw new Error('Id da tarefa está disponível apenas durante a execução do script agendado'.);
}

getTasks()

Obtém todos os scripts agendados no Engine corrente. O esquema de campos do dataSet retornado é similar ao da classe Scripts Agendados (-1898145133).

Returns:

Scripts agendados no Engine.

Type
DataSet

repairDatabase()

Inicia o processo de recuperação do banco de dados onde são armazenados os agendamentos dos scripts.

Esse processo deve ser utilizado para tentar recuperar um banco de dados que possa ter sido corrompido por uma falha de hardware, queda de energia ou outro evento inesperado. Ele tenta recuperar o máximo possível de agendamentos, mas não há garantia de que todos os registros serão recuperados.

O processo de recuperação interrompe a execução do agendador de scripts e impede a execução de novas tarefas. O Engine precisa ser reiniciado logo após a sua execução para concluir o processo de reparação.

Returns:

Resultado do processo de reparação do banco de dados.

Type
RepairDatabaseResult

saveTasks(tasks [, userId] [, password])

Efetiva as alterações realizadas no dataSet tasks, obtido previamente por meio do método getTasks.

Por padrão, os scripts agendados por método serão executados utilizando o usuário corrente da sessão, exceto se um outro usuário for informado por meio das credenciais userId e password. Os scripts serão executados enquanto o usuário responsável pelo agendamento estiver ativado. Esse comportamento pode ser modificado pela propriedade userValidationMode, que permite indicar que os scripts devem ser executados mesmo que a conta do usuário tenha sido bloqueada ou desativada. Essa opção é útil para a execução de scripts responsáveis por gravações de operações de forma assíncrona, pois, independentemente do estado do usuário, essas operações precisam ser efetivadas na base de dados.

Parameters:
Name Type Argument Description
tasks DataSet

Tarefas a serem gravadas.

userId string <optional>

Nome ou e-mail do usuário que será utilizado para executar as tarefas. Caso não seja informado, será utilizado o usuário corrente da sessão.

password string <optional>

Senha do usuário que será utilizada para executar as tarefas.


startTasks(taskIds)

Inicia as tarefas informadas por meio do seu identificador único, obtido na coluna "iUniqueId" do DataSet retornado pelo método getTasks.

Parameters:
Name Type Description
taskIds string | Array.<string>

Identificador único das tarefas a serem iniciadas.


stopTasks(taskIds)

Interrompe as tarefas informadas por meio do seu identificador único, obtido na coluna "iUniqueId" do DataSet retornado pelo método getTasks.

A interrupção de um script em execução não é imediata, pois nem todas as operações bloqueantes permitem a interrupção, como o acesso a drivers externos e o uso de APIs do sistema operacional.

Parameters:
Name Type Description
taskIds string | Array.<string>

Identificador único das tarefas a serem interrompidas.