Enviar un Job al Job Pool usando un Dynamic Cron
Un Dynamic Cron te permite configurar crons mediante código y programar envíos de jobs al job pool dinámicamente durante el tiempo de ejecución. En esta sección de ayuda, repasaremos los pasos necesarios para programar el envío de un job al job pool usando un Dynamic Cron.
Antes de crear un dynamic cron, dependiendo del tipo de tu job pool, asegúrate de que los siguientes componentes estén configurados y presentes en la consola de Catalyst:
- Function Job Pool: La Job Function, si fue inicializada a través del CLI de Catalyst, necesita estar desplegada en la consola de Catalyst, junto con el archivo de código que contiene la configuración de tu dynamic cron.
- Webhook Job Pool: Asegúrate de que la URL del servicio de terceros sea válida.
- Circuit Job Pool: Asegúrate de que el Circuit y sus funciones asociadas estén creados y presentes en la consola de Catalyst.
- AppSail Job Pool: Asegúrate de haber desplegado tu servicio AppSail en la consola de Catalyst.
Puntos a recordar cuando creas un Dynamic Cron:
- Los dynamic crons se habilitan y ejecutan idealmente durante el tiempo de ejecución.
- Los dynamic crons creados en el entorno de desarrollo no pueden migrarse al entorno de producción.
- Los dynamic crons se pueden crear usando el Builder, de la misma manera exacta que un Pre-Defined Cron. Sin embargo, esta opción se proporciona para que puedas crear y probar la funcionalidad de tus dynamic crons en el entorno de producción.
Configurar un Dynamic Cron
Para crear y configurar un Dynamic Cron:
-
Navega a la sección del servicio Job Scheduling en la consola de Catalyst y haz clic en Start Exploring.

-
Accede al componente cron haciendo clic en Cron bajo JOB EXECUTOR y haz clic en el botón Create Cron presente en la pestaña Dynamic.

- En esta documentación de ayuda, solo repasaremos los pasos necesarios para crear un Dynamic Cron mediante código usando el SDK de Catalyst.
- Puedes consultar esta documentación de ayuda, donde se explican los pasos para crear un Pre-Defined Cron usando el Builder. El Builder se puede usar exactamente de la misma manera para crear un Dynamic Cron.
- La opción de emplear Dynamic Crons usando el Builder se proporciona para que puedas crear y probar la funcionalidad de tus dynamic crons en el entorno de producción.
- Elige el tipo de fragmento de código que necesitas para codificar tu cron desde el menú desplegable.

Configurar un Dynamic Cron de una sola vez
// CRON DE UNA SOLA VEZ => que se ejecutará después de 60 minutos desde la hora actual
ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // obtener instancia de job scheduling
// generar metadatos del function job
ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job
.setJobConfig(2, 15 * 60 * 1000L) // configurar job - reintentos => 2 reintentos en 15 min (opcional)
.setJobpoolName(“functions_job_pool”) // establecer el nombre del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio)
// .setJobpoolId(1234567890L) // establecer el Id del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio)
.setTargetName(“target_function”) // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio)
// .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio)
.setParams(new JSONObject() {
{
put(“arg1”, “job”);
put(“arg2”, “test”);
}
}) // establecer parámetros a pasar a la función destino (opcional)
.setJobName(“job_name”) // establecer nombre del job
.build(); // construir metadatos del job
// generar detalles del cron
ZCCronDetails oneTimeCronDetails = ZCCronBuilder.zcOneTimeCronBuilder() // obtener builder de cron de una sola vez
.setCronStatus(true) // establecer cron como habilitado
.cronConfig(System.currentTimeMillis() + (60 * 1000 * 1000)) // establecer el tiempo de ejecución como timestamp UNIX
.setJobMeta(jobMeta) // establecer metadatos del job (modificar según el job)
.setCronName(“one_time_cron”) // establecer nombre del cron (único)
.build(); // construir detalles del cron
// crear cron de una sola vez
ZCCronDetails oneTimeCron = jobScheduling.cron.createCron(oneTimeCronDetails);
// CRON DE UNA SOLA VEZ => que se ejecutará después de 60 min desde la hora actual
const jobScheduling = app.jobScheduling(); // crear instancia de job scheduling
// crear metadatos del function job
const jobMeta = {
job_name: ’test_job’, // establecer un nombre para el job
target_type: ‘Function’, // establecer el tipo de destino como Function para function jobs
target_name: ’target_function’, // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio)
// target_id: ‘123467890’, // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio)
jobpool_name: ’test’, // establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio)
// jobpool_id: ‘1234567890’ // establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio)
job_config: {
number_of_retries: 2, // establecer el número de reintentos
retry_interval: 15 * 60 * 1000 + ’’ // establecer el intervalo de reintento
}, // configurar job - reintentos => 2 reintentos en 15 min (opcional)
params: {
arg1: ’test’,
arg2: ‘job’
}, // establecer parámetros a pasar a la función destino (opcional)
};
// crear detalles del cron de una sola vez
const oneTimeCron = {
cron_name: ‘one_time’, // establecer un nombre para el cron (único)
cron_status: true, // establecer el estado del cron como habilitado
cron_type: ‘OneTime’, // establecer el tipo de cron como OneTime
cron_detail: {
time_of_execution: Date.now() + (60 * 1000 * 1000) + ’’ // establecer el tiempo de ejecución como timestamp UNIX
},
job_meta: jobMeta // establecer metadatos del function job
};
// crear cron de una sola vez
const cronDetails = await jobScheduling.CRON.createCron(oneTimeCron);
# CRON DE UNA SOLA VEZ => que se ejecutará después de 60 min desde la hora actual
job_scheduling = app.job_scheduling() # crear instancia de job scheduling
# crear metadatos del function job
job_meta = {
‘job_name’: ’test_job’, # establecer un nombre para el job
’target_type’: ‘Function’, # establecer el tipo de destino como Function para function jobs
’target_name’: ’target_function’, # establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio)
# ’target_id’: ‘123467890’, # establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio)
‘jobpool_name’: ’test’, # establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio)
# ‘jobpool_id’: ‘1234567890’ # establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio)
‘job_config’: {
’number_of_retries’: 2, # establecer el número de reintentos
‘retry_interval’: 15 * 60 * 1000 # establecer el intervalo de reintento
}, # configurar job - reintentos => 2 reintentos en 15 min (opcional)
‘params’: {
‘arg1’: ’test’,
‘arg2’: ‘job’
} # establecer parámetros a pasar a la función destino (opcional)
}
# crear cron de una sola vez
one_time_cron_details = job_scheduling.CRON.create({
‘cron_name’: ‘one_time’, # establecer un nombre para el cron (único)
‘cron_status’: True, # establecer el estado del cron como habilitado
‘cron_type’: ‘OneTime’, # establecer el tipo de cron como OneTime
‘cron_detail’: {
’time_of_execution’: int(time.time()) + (60 * 10 * 1000) # establecer el tiempo de ejecución como timestamp UNIX
},
‘job_meta’: job_meta # establecer metadatos del function job
})
Configurar un Dynamic Cron recursivo
ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // obtener instancia de job scheduling
// generar metadatos del function job
ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job
.setJobConfig(2, 15 * 60 * 1000L) // configurar job - reintentos => 2 reintentos en 15 min (opcional)
.setJobpoolName(“functions_job_pool”) // establecer el nombre del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio)
// .setJobpoolId(1234567890L) // establecer el Id del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio)
.setTargetName(“target_function”) // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio)
// .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio)
.setParams(new JSONObject() {
{
put(“arg1”, “job”);
put(“arg2”, “test”);
}
}) // establecer parámetros a pasar a la función destino (opcional)
.setJobName(“job_name”) // establecer nombre del job
.build(); // construir metadatos del job
// CRON EVERY => que se ejecutará cada 2hrs 1min y 3seg
// generar detalles del cron
ZCCronDetails everyCronDetails = ZCCronBuilder.zcEveryCronBuilder() // obtener builder de cron every
.setCronStatus(true) // establecer cron como habilitado
.setTime(2, 1, 3) // establecer el intervalo de repetición
.setJobMeta(jobMeta) // establecer metadatos del job (modificar según el job)
.setCronName(“every_cron”) // establecer nombre del cron (único)
.build(); // construir detalles del cron
// crear cron every
ZCCronDetails everyCron = jobScheduling.cron.createCron(everyCronDetails);
// CRON DIARIO => que se ejecutará a las 0hrs 0min y 0seg diariamente
// generar detalles del cron
ZCCronDetails dailyCronDetails = ZCCronBuilder.zcDailyCronBuilder() // obtener builder de cron diario
.setCronStatus(true) // establecer cron como habilitado
.setTime(0, 0, 0) // establecer la hora del día en que el cron debe ejecutarse
.setJobMeta(jobMeta) // establecer metadatos del job (modificar según el job)
.setCronName(“daily_cron”) // establecer nombre del cron (único)
.build(); // construir detalles del cron
// crear cron diario
ZCCronDetails dailyCron = jobScheduling.cron.createCron(dailyCronDetails);
// CRON MENSUAL => que se ejecutará a las 0hrs 0min 0seg los días 1, 3 y 5 de cada mes
// generar detalles del cron
ZCCronDetails monthlyCronDetails = ZCCronBuilder.zcMonthlyCronBuilder() // obtener builder de cron mensual
.setCronStatus(true) // establecer cron como habilitado
.setTime(0, 0, 0) // establecer la hora del día en que el cron debe ejecutarse
.setDays(1, 3, 5) // establecer los días del mes (configuración basada en días)
// .setWeeksOfMonth(1, 3) // establecer las semanas del mes (se requiere configuración basada en semanas o en días)
// .setDayOfTheWeek(1, 2) // establecer los días de la semana (se requiere configuración basada en semanas o en días)
.setJobMeta(jobMeta) // establecer metadatos del job (modificar según el job)
.setCronName(“monthly_cron”) // establecer nombre del cron (único)
.build(); // construir detalles del cron
// crear cron mensual
ZCCronDetails monthlyCron = jobScheduling.cron.createCron(monthlyCronDetails);
// CRON ANUAL => que se ejecutará a las 0hrs 0min 0seg los días 1, 2, 3 del mes 8 del año
// generar detalles del cron
ZCCronDetails yearlyCronDetails = ZCCronBuilder.zcYearlyCronBuilder() // obtener builder de cron anual
.setCronStatus(true) // establecer cron como habilitado
.setTime(0, 0, 0) // establecer la hora del día en que el cron debe ejecutarse
.setDays(1, 2, 3) // establecer los días del mes
// .setWeeksOfMonth(1) // establecer las semanas del mes (se requiere configuración basada en semanas o en días)
// .setDayOfTheWeek(3) // establecer los días de la semana (se requiere configuración basada en semanas o en días)
.setMonths(8) // establecer los meses
.setJobMeta(jobMeta) // establecer metadatos del job (modificar según el job)
.setCronName(“yearly_cron”) // establecer nombre del cron (único)
.build(); // construir detalles del cron
// crear cron anual
ZCCronDetails yearlyCron = jobScheduling.cron.createCron(yearlyCronDetails);
const jobScheduling = app.jobScheduling(); // crear instancia de job scheduling
// crear metadatos del function job
const jobMeta = {
job_name: ’test_job’, // establecer un nombre para el job
target_type: ‘Function’, // establecer el tipo de destino como Function para function jobs
target_name: ’target_function’, // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio)
// target_id: ‘123467890’, // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio)
jobpool_name: ’test’, // establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio)
// jobpool_id: ‘1234567890’ // establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio)
job_config: {
number_of_retries: 2, // establecer el número de reintentos
retry_interval: 15 * 60 * 1000 + ’’ // establecer el intervalo de reintento
}, // configurar job - reintentos => 2 reintentos en 15 min (opcional)
params: {
arg1: ’test’,
arg2: ‘job’
}, // establecer parámetros a pasar a la función destino (opcional)
};
// CRON EVERY => que se ejecutará cada 2hrs 1min y 3seg
// crear detalles del cron every
const everyCron = {
cron_name: ’every_cron’, // establecer un nombre para el cron (único)
cron_status: true, // establecer el estado del cron como habilitado
cron_type: ‘Periodic’, // establecer el tipo de cron como Periodic para cron every
cron_detail: {
hour: 2, // establecer el intervalo de horas de la repetición
minute: 1, // establecer el intervalo de minutos de la repetición
second: 3, // establecer el intervalo de segundos de la repetición
repetition_type: “every” // establecer el tipo de repetición como every para cron every
},
job_meta: jobMeta // establecer metadatos del function job
};
// crear cron every
const everyCronDetails = await jobScheduling.CRON.createCron(everyCron);
// CRON DIARIO => que se ejecutará a las 0hrs 0min y 0seg diariamente
// crear detalles del cron diario
const dailyCron = {
cron_name: ‘daily_cron’, // establecer un nombre para el cron (único)
cron_status: true, // establecer el estado del cron como habilitado
cron_type: ‘Calendar’, // establecer el tipo de cron como Calendar para diario, mensual y anual
cron_detail: {
hour: 0, // establecer la hora del día en que el cron debe ejecutarse
minute: 0, // establecer el minuto del día en que el cron debe ejecutarse
second: 0, // establecer el segundo del día en que el cron debe ejecutarse
repetition_type: ‘daily’ // establecer el tipo de repetición como daily para cron diario
},
job_meta: jobMeta // establecer metadatos del function job
};
// crear cron diario
const dailyCronDetails = await jobScheduling.CRON.createCron(dailyCron);
// CRON MENSUAL => que se ejecutará a las 0hrs 0min 0seg los días 1, 3 y 5 de cada mes
// crear detalles del cron mensual
const monthlyCron = {
cron_name: ‘monthly_cron’, // establecer un nombre para el cron (único)
cron_status: true, // establecer el estado del cron como habilitado
cron_type: ‘Calendar’, // establecer el tipo de cron como Calendar para diario, mensual y anual
cron_detail: {
hour: 0, // establecer la hora del día en que el cron debe ejecutarse
minute: 0, // establecer el minuto del día en que el cron debe ejecutarse
second: 0, // establecer el segundo del día en que el cron debe ejecutarse
days: [1, 3, 5], // establecer los días del mes en que el cron debe ejecutarse
// week_day: [1, 3], // establecer los días de la semana en un mes durante los cuales el cron debe ejecutarse
// weeks_of_month: [2], // establecer las semanas del mes durante las cuales el cron debe ejecutarse
repetition_type: ‘monthly’ // establecer el tipo de repetición como monthly para cron mensual
},
job_meta: jobMeta // establecer metadatos del function job
};
// crear cron mensual
const monthlyCronDetails = await jobScheduling.CRON.createCron(monthlyCron);
// CRON ANUAL => que se ejecutará a las 0hrs 0min 0seg los días 1, 2, 3 del mes 8 del año
// crear detalles del cron anual
const yearlyCron = {
cron_name: ‘yearly_cron’, // establecer un nombre para el cron (único)
cron_status: true, // establecer el estado del cron como habilitado
cron_type: ‘Calendar’, // establecer el tipo de cron como Calendar para diario, mensual y anual
cron_detail: {
hour: 0, // establecer la hora del día en que el cron debe ejecutarse
minute: 0, // establecer el minuto del día en que el cron debe ejecutarse
second: 0, // establecer el segundo del día en que el cron debe ejecutarse
days: [1, 2, 3], // establecer los días del mes en que el cron debe ejecutarse
// week_day: [1, 3], // establecer los días de la semana en un mes durante los cuales el cron debe ejecutarse
// weeks_of_month: [2], // establecer las semanas del mes durante las cuales el cron debe ejecutarse
months: [8], // establecer los meses del año en que el cron debe ejecutarse
repetition_type: ‘yearly’ // establecer el tipo de repetición como yearly para cron anual
},
job_meta: jobMeta // establecer metadatos del function job
};
// crear cron anual
const yearlyCronDetails = await jobScheduling.CRON.createCron(yearlyCron);
job_scheduling = app.job_scheduling() # crear instancia de job scheduling
# crear metadatos del function job
job_meta = {
‘job_name’: ’test_job’, # establecer un nombre para el job
’target_type’: ‘Function’, # establecer el tipo de destino como Function para function jobs
’target_name’: ’target_function’, # establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio)
# ’target_id’: ‘123467890’, # establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio)
‘jobpool_name’: ’test’, # establecer el nombre del function jobpool (opcional) (jobpool_name o jobpool_id es obligatorio)
# ‘jobpool_id’: ‘1234567890’ # establecer el Id del function jobpool (opcional) (jobpool_name o jobpool_id es obligatorio)
‘job_config’: {
’number_of_retries’: 2, # establecer el número de reintentos
‘retry_interval’: 15 * 60 * 1000 # establecer el intervalo de reintento
}, # configurar job - reintentos => 2 reintentos en 15 min (opcional)
‘params’: {
‘arg1’: ’test’,
‘arg2’: ‘job’
} # establecer parámetros a pasar a la función destino (opcional)
}
# CRON EVERY => que se ejecutará cada 2hrs 1min y 3seg
every_cron = job_scheduling.CRON.create({
‘cron_name’: ’every_cron’, # establecer un nombre para el cron (único)
‘cron_status’: True, # establecer el estado del cron como habilitado
‘cron_type’: ‘Periodic’, # establecer el tipo de cron como Periodic para cron every
‘cron_detail’: {
‘hour’: 2, # establecer el intervalo de horas de la repetición
‘minute’: 1, # establecer el intervalo de minutos de la repetición
‘second’: 3, # establecer el intervalo de segundos de la repetición
‘repetition_type’: ’every’ # establecer el tipo de repetición como every para cron every
},
‘job_meta’: job_meta # establecer metadatos del function job
})
# CRON DIARIO => que se ejecutará a las 0hrs 0min y 0seg diariamente
daily_cron = job_scheduling.CRON.create({
‘cron_name’: ‘daily_cron’, # establecer un nombre para el cron (único)
‘cron_status’: True, # establecer el estado del cron como habilitado
‘cron_type’: ‘Calendar’, # establecer el tipo de cron como Calendar para diario, mensual y anual
‘cron_detail’: {
‘hour’: 0, # establecer la hora del día en que el cron debe ejecutarse
‘minute’: 0, # establecer el minuto del día en que el cron debe ejecutarse
‘second’: 0, # establecer el segundo del día en que el cron debe ejecutarse
‘repetition_type’: ‘daily’ # establecer el tipo de repetición como daily para cron diario
},
‘job_meta’: job_meta # establecer metadatos del function job
})
# CRON MENSUAL => que se ejecutará a las 0hrs 0min 0seg los días 1, 3 y 5 de cada mes
monthly_cron = job_scheduling.CRON.create({
‘cron_name’: ‘monthly_cron’, # establecer un nombre para el cron (único)
‘cron_status’: True, # establecer el estado del cron como habilitado
‘cron_type’: ‘Calendar’, # establecer el tipo de cron como Calendar para diario, mensual y anual
‘cron_detail’: {
‘hour’: 0, # establecer la hora del día en que el cron debe ejecutarse
‘minute’: 0, # establecer el minuto del día en que el cron debe ejecutarse
‘second’: 0, # establecer el segundo del día en que el cron debe ejecutarse
‘days’: [1, 3, 5], # establecer los días del mes en que el cron debe ejecutarse
# ‘week_day’: [1, 3], # establecer los días de la semana en un mes durante los cuales el cron debe ejecutarse
# ‘weeks_of_month’: [2], # establecer las semanas del mes durante las cuales el cron debe ejecutarse
‘repetition_type’: ‘monthly’ # establecer el tipo de repetición como monthly para cron mensual
},
‘job_meta’: job_meta # establecer metadatos del function job
})
# CRON ANUAL => que se ejecutará a las 0hrs 0min 0seg los días 1, 2, 3 del mes 8 del año
yearly_cron = job_scheduling.CRON.create({
‘cron_name’: ‘yearly_cron’, # establecer un nombre para el cron (único)
‘cron_status’: True, # establecer el estado del cron como habilitado
‘cron_type’: ‘Calendar’, # establecer el tipo de cron como Calendar para diario, mensual y anual
‘cron_detail’: {
‘hour’: 0, # establecer la hora del día en que el cron debe ejecutarse
‘minute’: 0, # establecer el minuto del día en que el cron debe ejecutarse
‘second’: 0, # establecer el segundo del día en que el cron debe ejecutarse
‘days’: [1, 2, 3], # establecer los días del mes en que el cron debe ejecutarse
# ‘week_day’: [1, 3], # establecer los días de la semana en un mes durante los cuales el cron debe ejecutarse
# ‘weeks_of_month’: [2], # establecer las semanas del mes durante las cuales el cron debe ejecutarse
‘months’: [8], # establecer los meses del año en que el cron debe ejecutarse
‘repetition_type’: ‘yearly’ # establecer el tipo de repetición como yearly para cron anual
},
‘job_meta’: job_meta # establecer metadatos del function job
})
Definir Dynamic Crons usando Cron Expressions
// CRON CON EXPRESIÓN => que se ejecutará a las 0hrs 0min cada primer día de las semanas en el primer mes del año
ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // obtener instancia de job scheduling
// generar metadatos del function job
ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job
.setJobConfig(2, 15 * 60 * 1000L) // configurar job - reintentos => 2 reintentos en 15 min (opcional)
.setJobpoolName(“functions_job_pool”) // establecer el nombre del function job pool (opcional) (JobpoolId o JobpoolName es obligatorio)
// .setJobpoolId(1234567890L) // establecer el Id del function job pool (opcional) (JobpoolId o JobpoolName es obligatorio)
.setTargetName(“target_function”) // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio)
// .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio)
.setParams(new JSONObject() {
{
put(“arg1”, “job”);
put(“arg2”, “test”);
}
}) // establecer parámetros a pasar a la función destino (opcional)
.setJobName(“job_name”) // establecer nombre del job
.build(); // construir metadatos del job
// generar detalles del cron
ZCCronDetails expressionCronDetails = ZCCronBuilder.zcExpressionCronBuilder() // obtener builder de cron con expresión
.setCronStatus(true) // establecer cron como habilitado
.setCronExpression(“0 0 * 1 1”) // establecer la expresión cron UNIX
.setCronName(“expression_cron”) // establecer nombre del cron
.setJobMeta(jobMeta) // establecer metadatos del job
.build(); // construir detalles del cron
// crear cron con expresión
ZCCronDetails expressionCron = jobScheduling.cron.createCron(expressionCronDetails);
// CRON CON EXPRESIÓN => que se ejecutará a las 0hrs 0min cada primer día de las semanas en el primer mes del año
const jobScheduling = app.jobScheduling(); // crear instancia de job scheduling
// crear metadatos del function job
const jobMeta = {
job_name: ’test_job’, // establecer un nombre para el job
target_type: ‘Function’, // establecer el tipo de destino como Function para function jobs
target_name: ’target_function’, // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio)
// target_id: ‘123467890’, // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio)
jobpool_name: ’test’, // establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio)
// jobpool_id: ‘1234567890’ // establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio)
job_config: {
number_of_retries: 2, // establecer el número de reintentos
retry_interval: 15 * 60 * 1000 + ’’ // establecer el intervalo de reintento
}, // configurar job - reintentos => 2 reintentos en 15 min (opcional)
params: {
arg1: ’test’,
arg2: ‘job’
}, // establecer parámetros a pasar a la función destino (opcional)
};
// crear detalles del cron con expresión
const expressionCron = {
cron_name: ’expression_cron’, // establecer un nombre para el cron (único)
cron_status: true, // establecer el estado del cron como habilitado
cron_type: ‘CronExpression’, // establecer el tipo de cron como Calendar para diario, mensual y anual
cron_expression: ‘0 0 * 1 1’, // establecer la expresión cron
cron_detail: {}, // establecer los detalles del cron
job_meta: jobMeta // establecer metadatos del function job
};
// crear cron con expresión
const expressionCronDetails = await jobScheduling.CRON.createCron(expressionCron);
# CRON CON EXPRESIÓN => que se ejecutará a las 0hrs 0min cada primer día de las semanas en el primer mes del año
job_scheduling = app.job_scheduling() # crear instancia de job scheduling
# crear metadatos del function job
job_meta = {
‘job_name’: ’test_job’, # establecer un nombre para el job
’target_type’: ‘Function’, # establecer el tipo de destino como Function para function jobs
’target_name’: ’target_function’, # establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio)
# ’target_id’: ‘123467890’, # establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio)
‘jobpool_name’: ’test’, # establecer el nombre del function jobpool (opcional) (jobpool_name o jobpool_id es obligatorio)
# ‘jobpool_id’: ‘1234567890’ # establecer el Id del function jobpool (opcional) (jobpool_name o jobpool_id es obligatorio)
‘job_config’: {
’number_of_retries’: 2, # establecer el número de reintentos
‘retry_interval’: 15 * 60 * 1000 # establecer el intervalo de reintento
}, # configurar job - reintentos => 2 reintentos en 15 min (opcional)
‘params’: {
‘arg1’: ’test’,
‘arg2’: ‘job’
} # establecer parámetros a pasar a la función destino (opcional)
}
# crear cron con expresión
expression_cron = job_scheduling.CRON.create({
‘cron_name’: ’expression_cron’, # establecer un nombre para el cron (único)
‘cron_status’: True, # establecer el estado del cron como habilitado
‘cron_type’: ‘CronExpression’, # establecer el tipo de cron como Calendar para diario, mensual y anual
‘cron_expression’: ‘0 0 * 1 1’, # establecer la expresión cron
‘cron_detail’: {}, # establecer los detalles del cron
‘job_meta’: job_meta # establecer metadatos del function job
})
-
Copia el código según tus necesidades usando el icono de copiar y agrégalo a tu lógica de negocio y codifica según tus requisitos.
-
Las configuraciones de dynamic cron presentes en tus archivos de código se desplegarán y estarán disponibles en tu consola cuando despliegues tu proyecto en la consola de Catalyst.
-
El Dynamic Cron se creará durante el tiempo de ejecución, y el job configurado en el código será enviado al job pool durante el tiempo de ejecución en el horario configurado.

Última actualización 2026-03-24 17:38:39 +0530 IST
Yes
No
Send your feedback to us
