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 taskIdsstring | Array.<string> Identificador único das tarefas a serem removidas.
userIdstring <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.
passwordstring <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á retornadonull.Returns:
Identificador único da tarefa em execução ou
nullcaso 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 tasksDataSet Tarefas a serem gravadas.
userIdstring <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.
passwordstring <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 taskIdsstring | 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 taskIdsstring | Array.<string> Identificador único das tarefas a serem interrompidas.