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


maxSimultaneousTasks :number

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

Type:
  • number

Methods


<static> getInstance()

Obtém uma instância compartilhada desta classe.

Returns:
Type
Scheduler

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á utilizado 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

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

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

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á utilizado 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.