El objeto JobContext proporciona información en tiempo de ejecución sobre el job actual, incluidos identificadores, horarios de programación, estado de reintentos, detalles de sharding y datos del flujo de trabajo ascendente.
Uso básico
Acceda a los parámetros de JobContext mediante los métodos getter en su controlador de jobs:
public class SampleJobProcessor extends JavaProcessor {
@Override
public ProcessResult process(JobContext context) throws Exception {
// Job and instance identifiers
long jobId = context.getJobId();
long instanceId = context.getJobInstanceId();
// Scheduling metadata
DateTime scheduledTime = context.getScheduleTime();
DateTime dataTime = context.getDataTime();
// Static parameters configured in the SchedulerX console
String params = context.getJobParameters();
// Dynamic parameters passed through API calls
String dynamicParams = context.getInstanceParameters();
// Retry state
int currentAttempt = context.getAttempt();
int maxRetries = context.getMaxAttempt();
System.out.println("Job " + jobId + ", instance " + instanceId
+ ", attempt " + currentAttempt + "/" + maxRetries);
return new ProcessResult(true);
}
}
Identificadores de job e instancia
|
Parámetro |
Tipo |
Descripción |
|
|
long |
ID del job. |
|
|
long |
ID de la instancia del job. |
|
|
String |
Tipo de job. |
|
|
long |
ID de la tarea dentro de un job distribuido. El ID de la tarea raíz es |
|
|
String |
Nombre de la tarea. |
|
|
Object |
Cuerpo de la tarea. |
Horarios de programación
|
Parámetro |
Tipo |
Descripción |
|
|
DateTime |
Hora programada de la instancia. |
|
|
DateTime |
Hora en que se ejecuta el job en la instancia. |
Parámetros del job
|
Parámetro |
Tipo |
Descripción |
|
|
String |
Parámetros estáticos configurados en la consola de SchedulerX. Tamaño máximo: 10,000 bytes. |
|
|
String |
Parámetros dinámicos transmitidos al activar una instancia mediante una llamada a la API. |
Parámetros de reintento
|
Parámetro |
Tipo |
Descripción |
|
|
int |
Número máximo de reintentos para la instancia del job. |
|
|
int |
Conteo actual de reintentos para la instancia del job. |
|
|
int |
Número máximo de reintentos para la tarea. |
|
|
int |
Conteo actual de reintentos para la tarea. |
Parámetros de sharding
Disponibles únicamente cuando el Execution mode se establece en Broadcast run o Shard run.
|
Parámetro |
Tipo |
Descripción |
|
|
Long |
ID del shard. Disponible en los modos Broadcast run y Shard run. |
|
|
String |
Parámetro de sharding. Disponible solo en el modo Shard run. |
|
|
int |
Número total de shards. Disponible en los modos Broadcast run y Shard run. |
Ejemplo:
public class ShardJobProcessor extends JavaProcessor {
@Override
public ProcessResult process(JobContext context) throws Exception {
Long shardId = context.getShardingId();
int totalShards = context.getShardingNum();
String shardParam = context.getShardingParameter();
System.out.println("Processing shard " + shardId + " of " + totalShards);
return new ProcessResult(true);
}
}
Parámetros del flujo de trabajo
Disponibles cuando el job se ejecuta como parte de un flujo de trabajo.
|
Parámetro |
Tipo |
Descripción |
|
|
Long |
ID del flujo de trabajo. |
|
|
long |
ID de la instancia del flujo de trabajo. |
|
|
|
Datos de las instancias de job ascendentes en el flujo de trabajo. Un flujo de trabajo puede tener varias instancias ascendentes, por lo que este parámetro devuelve una lista. |
|
|
String |
Parámetros del flujo de trabajo. Requiere la versión 1.14.2 o posterior del cliente. |