Todos los productos
Search
Centro de documentos

SchedulerX:HTTP job

Última actualización: Sep 05, 2026

Los trabajos HTTP de SchedulerX requieren un agente para su programación. El modo de ejecución serverless necesita un nombre de dominio público, lo que implica riesgos de estabilidad y seguridad. Se recomienda utilizar trabajos HTTP de XXL-JOB.

Requisitos previos

  • Modo de ejecución serverless: activa un trabajo HTTP mediante una función en la nube o una arquitectura serverless. Este modo es adecuado para llamadas a API públicas y tareas ligeras.

  • Modo de ejecución con agente: ejecuta un trabajo HTTP mediante un agente de SchedulerX instalado en el dispositivo destino. Primero debe deploy the SchedulerX agent. Este modo es adecuado para llamadas a servicios internos y escenarios de procesamiento complejo.

Nota

Puede seleccionar serverless o agent para el parámetro execution mode al crear un trabajo HTTP en la consola.

Modos de ejecución

La siguiente tabla compara los trabajos HTTP de SchedulerX con los trabajos HTTP de MSE-XXLJOB.

SchedulerX serverless (obsoleto)

Agente de SchedulerX

MSE-XXL-JOB

Cliente requerido

No. Las solicitudes las inicia el servidor.

Sí. El servidor envía comandos al cliente, que luego inicia la llamada.

No. Las solicitudes las inicia el servidor.

Método de solicitud

Actualmente, solo se admiten GET y POST. Se añadirán otros métodos según la demanda de los usuarios.

Definición de solicitud

Solo admite configuración de cookies y parámetros POST.

Admite todas las configuraciones de parámetros de trabajos HTTP, incluidos Header, Query y Body.

Definición de respuesta

  • Código de respuesta HTTP: determina el éxito del trabajo según el código de respuesta HTTP.

  • Análisis sintáctico JSON del cuerpo de respuesta: la respuesta debe estar en formato JSON. El éxito del trabajo se determina mediante un par clave-valor específico.

  • Cuerpo de respuesta: la respuesta es una cadena. El éxito del trabajo se determina mediante una coincidencia exacta con una cadena específica en el cuerpo.

Programación a nivel de segundo

No. Solo admite programación a nivel de minuto.

Sí

Sí

Compatibilidad con URL interna

No

Sí

Requisito de nombre de dominio

No

Sí. Admite acceso a Kubernetes Service sin necesidad de gateway ni nombre de dominio.

Compatibilidad con fragmentación por difusión

No

Sí

Análisis sintáctico del nombre de tarea

Si el nombre de una tarea contiene caracteres chinos, el backend puede decodificarlo mediante URLDecode.decode(jobName, "utf-8").

Crear un trabajo HTTP

Puede crear un trabajo HTTP con el método de solicitud GET o POST.

Paso 1: Configuración básica

GET

  1. Despliegue un servicio HTTP accesible.

    • Si ya cuenta con un servicio HTTP accesible, continúe con Step 2 para crear un trabajo HTTP en la consola de SchedulerX. Tenga a mano la URL del servicio HTTP destino, el método de solicitud (GET o POST) y otra información de configuración relevante.

    • Si no ha desplegado un servicio HTTP, consulte el siguiente código Java de ejemplo para desarrollar una interfaz HTTP:

      @GET
      @Path("hi")
      @Produces(MediaType.APPLICATION_JSON)
      public RestResult hi(@QueryParam("user") String user) {
          TestVo vo = new TestVo();
          vo.setName(user);
          RestResult result = new RestResult();
          result.setCode(200);
          result.setData(vo);
          return result;
      }
  2. Cree un trabajo HTTP en la consola de SchedulerX.

    A continuación se muestran las configuraciones relevantes para un trabajo HTTP GET. Para obtener más información sobre cómo crear un trabajo programado, consulte Create a scheduled job. Configure los siguientes parámetros: establezca Task name en http_get, seleccione Http para Task type, introduzca la dirección de solicitud destino en el campo Full URL, seleccione GET para Request method, seleccione Custom JSON para response analysis mode, introduzca code en Return Check Key, introduzca 200 en Return Check Value, establezca Execution Timeout en 10 segundos y seleccione serverless para execution mode.

POST

  1. Despliegue un servicio HTTP accesible.

    • Si ya cuenta con un servicio HTTP accesible, continúe con Step 2 para crear un trabajo HTTP en la consola de SchedulerX. Tenga a mano la URL del servicio HTTP destino, el método de solicitud (GET o POST) y otra información de configuración relevante.

    • Si no ha desplegado un servicio HTTP, consulte el siguiente código Java de ejemplo para desarrollar una interfaz HTTP:

      import com.alibaba.schedulerx.common.constants.CommonConstants;
      @POST
      @Path("createUser")
      @Produces(MediaType.APPLICATION_JSON)
      public RestResult createUser(@FormParam("userId") String userId, 
              @FormParam("userName") String userName) {
          TestVo vo = new TestVo();
          System.out.println("userId=" + userId + ", userName=" + userName);
          vo.setName(userName);
          RestResult result = new RestResult();
          result.setCode(200);
          result.setData(vo);
          return result;
      }
  2. Cree un trabajo HTTP en la consola de SchedulerX.

    A continuación se muestran las configuraciones relevantes para un trabajo HTTP POST. Para obtener más información sobre cómo crear un trabajo programado, consulte Create a scheduled job. Establezca Task name en http_post, seleccione Http para Task type, introduzca la dirección de la interfaz destino en el campo Full URL, seleccione POST para Request method, seleccione Custom JSON para response analysis mode, introduzca code en Return Check Key, introduzca 200 en Return Check Value, establezca Execution Timeout en 10 segundos, seleccione application/x-www-form-urlencoded para ContentType, introduzca los POST parameters en formato key1=value1&key2=value2 y seleccione serverless para execution mode.

Parámetros para trabajos HTTP serverless y agent:

Nota

Los parámetros de configuración para los modos de ejecución serverless y agent son los mismos en la consola de SchedulerX.

Parámetro

Descripción

Name

Nombre personalizado del trabajo.

Description

Breve descripción del propósito empresarial del trabajo para facilitar búsquedas futuras.

Application ID

Grupo al que pertenece el trabajo. Puede seleccionar uno de la lista desplegable.

Job Type

Tipo de trabajo. Para este escenario, seleccione HTTP.

Full URL

Introduzca una URL completa que comience con http:// o https://.

Request method

Seleccione GET o POST.

Response analysis mode

Seleccione el modo de análisis de respuesta. Los modos compatibles son los siguientes:

  • Código de respuesta HTTP.

    El éxito del trabajo se determina mediante un código de respuesta HTTP específico que usted configura.

  • JSON personalizado.

    Configure una clave de verificación de retorno y un valor de verificación de retorno.

    El servidor utiliza de forma predeterminada el formato JSON para los resultados de solicitudes HTTP. Verifica el éxito según la clave y el valor introducidos.

    {
      "code": 200,
      "data": "true",
      "message": "",
      "requestId": "446655068791923614103381232971",
      "success": true
    }

    En el ejemplo anterior, puede verificar el éxito comprobando si la clave success tiene el valor true, o si la clave code tiene el valor 200.

  • Cadena personalizada.

    Determina el éxito del trabajo mediante una coincidencia exacta con una cadena personalizada en la respuesta.

Si selecciona HTTP Response Code para response analysis mode:

Código de respuesta HTTP

Establezca el código de respuesta HTTP esperado. El valor predeterminado es 200.

Si selecciona Custom JSON para response analysis mode:

Clave de verificación de retorno

Solo admite valores de retorno JSON. La clave que se verifica para confirmar una respuesta exitosa.

Valor de verificación de retorno

Solo admite valores de retorno JSON. El valor que se verifica para confirmar una respuesta exitosa.

Si selecciona Custom String para response analysis mode:

Cadena personalizada

Establezca la cadena personalizada.

Tiempo de espera de ejecución

  • serverless: hasta 30 segundos para la edición Basic y hasta 120 segundos para la edición Professional.

  • agent: sin límite.

Tipo de contenido

Cuando el Request method es POST, especifica el formato de datos del cuerpo de la solicitud. Formatos compatibles:

  • application/x-www-form-urlencoded

  • application/json

POST parameters

Cuando el Request method es POST, especifica los parámetros de formulario POST. Ejemplos:

  • Cuando Content type es application/x-www-form-urlencoded: key1=value&key2=value2.

  • Cuando Content type es application/json: {"key1":"val1","key2":"val2"}.

Cookie

Por ejemplo, key1=val1;key2=val2. Separe varios valores con punto y coma (;). La longitud máxima es de 300 bytes.

Modo de ejecución

  • serverless: el servidor inicia las solicitudes, por lo que se requiere una URL accesible públicamente.

  • agent: el cliente inicia las solicitudes, por lo que se requiere un agente de SchedulerX desplegado. Puede configurar una URL interna. Este modo solo es compatible con versiones del cliente 1.8.2 y posteriores. Para desplegar un agente de SchedulerX, consulte Agent Access (for scripts or HTTP jobs).

Configuración avanzada

Task Failure Retry Count

Número de reintentos tras un fallo del trabajo. El valor predeterminado es 0.

Retry Interval

Intervalo entre reintentos tras un fallo del trabajo. El valor predeterminado es 30 segundos.

Task Concurrency

Número máximo de instancias del mismo trabajo que pueden ejecutarse simultáneamente. Un valor de 1 impide la ejecución concurrente. Si se supera el límite de concurrencia, se omite la programación actual.

Cleanup Policy

Directiva de limpieza del historial de ejecución del trabajo. De forma predeterminada, conserva los últimos N registros, donde N es el Record Count.

  • Conservar los últimos N registros.

  • Conservar los últimos N registros por estado.

Record Count

Número de registros históricos de ejecución que se conservan para el trabajo. El valor predeterminado es 300.

Paso 2: Configuración de programación

En la página Schedule Configuration del asistente de configuración, establezca los parámetros de programación y los parámetros de configuración avanzada, y luego haga clic en Next.

Los parámetros de programación se describen a continuación:

Parámetro

Descripción

Time Type

  • none: deshabilita la programación automática. Los trabajos suelen activarse mediante un flujo de trabajo.

  • cron: expresión cron.

  • api: activado mediante API.

  • fixed_rate: frecuencia fija.

  • second_delay: retraso fijo en segundos.

  • onetime: trabajo único.

Cron Expression (solo para tipo de tiempo cron)

Introduzca una expresión cron. Puede escribirla directamente siguiendo la sintaxis de Cron o utilizar una herramienta para generarla y validarla.

Frecuencia fija (solo para tipo de tiempo fixed_rate)

Introduzca una frecuencia fija en segundos. Los valores deben ser de 60 segundos o más. Por ejemplo, 200 significa una programación cada 200 segundos.

Retraso fijo (solo para tipo de tiempo second_delay)

Introduzca un retraso fijo en segundos. El rango va de 1 a 60 segundos. Por ejemplo, 5 significa un retraso de 5 segundos antes de activar la programación.

Hora de programación (solo para tipo de tiempo onetime)

Seleccione una fecha y hora. Por ejemplo, 2025-4-2 12:00:00 programa el trabajo una sola vez.

Configuración avanzada

Desfase horario

Desfase de la hora de los datos respecto a la hora de programación. Puede obtener este valor del contexto durante la programación.

Time Zone

Puede seleccionar distintas zonas horarias según sus necesidades, incluidos países o regiones comunes, así como formatos GMT estándar.

Calendar

Establezca el calendario efectivo para el trabajo.

  • Programar diariamente.

  • Especificar un calendario, como días financieros o días laborables.

Effective Time

Establezca la hora efectiva para el trabajo.

  • Efectivo inmediatamente.

  • Hora de inicio: requiere seleccionar una fecha y hora de inicio.

Paso 3: Configuración de notificaciones

Los trabajos HTTP admiten alertas de fallo. Cuando ocurren problemas como tiempos de espera agotados o valores de retorno inesperados, puede configurar reglas de alerta durante la creación del trabajo para recibir las notificaciones correspondientes.

  1. En la página Notification Configuration del asistente de configuración, establezca los parámetros de alerta y los contactos, y luego haga clic en Complete.

    Los parámetros configurables incluyen: Timeout alert (habilitado), Timeout period (en segundos), Terminate on timeout (deshabilitado), Success notification (deshabilitado), Failure alert (habilitado), Consecutive failures (establecido en 1) y No available machine alert (habilitado). Para Notification channels and contacts, puede seleccionar Application group contacts o Custom.

  2. Una vez creado correctamente el trabajo, vaya a la página Task management y haga clic en Run Once en la columna Actions del trabajo destino.

    En la página de detalles del registro de la instancia del trabajo, consulte el resultado de la ejecución y los registros.

Obtener información básica del trabajo

La información básica de un trabajo HTTP se encuentra en el encabezado. Para obtener esta información, debe agregar la siguiente dependencia al archivo pom.xml de su cliente.

<dependency>
    <groupId>com.aliyun.schedulerx</groupId>
    <artifactId>schedulerx2-common</artifactId>
    <version>1.6.0</version>
</dependency>

El siguiente ejemplo muestra cómo obtener información básica del trabajo mediante el método GET.

import com.alibaba.schedulerx.common.constants.CommonConstants;
@GET
@Path("hi")
@Produces(MediaType.APPLICATION_JSON)
public RestResult hi(@QueryParam("user") String user,
        @HeaderParam(CommonConstants.JOB_ID_HEADER) String jobId,
        @HeaderParam(CommonConstants.JOB_NAME_HEADER) String jobName) {
    TestVo vo = new TestVo();
    vo.setName("armon");
    // If the jobName contains Chinese characters, it needs to be URL-decoded.
    String decodedJobName = URLDecoder.decode(jobName, "utf-8");
    System.out.println("user=" + user + ", jobId=" + jobId + ", jobName=" + decodedJobName);
    RestResult result = new RestResult();
    result.setCode(200);
    result.setData(vo);
    return result;
}

Definiciones de constantes del trabajo

La siguiente tabla describe la información básica de CommonConstants.

Constante

Clave

Descripción

JOB_ID_HEADER

schedulerx-jobId

ID del trabajo.

JOB_NAME_HEADER

schedulerx-jobName

Nombre del trabajo.

SCHEDULE_TIMESTAMP_HEADER

schedulerx-scheduleTimestamp

Marca de tiempo de la hora de programación.

DATA_TIMESTAMP_HEADER

schedulerx-dataTimestamp

Marca de tiempo de la hora de los datos.

GROUP_ID_HEADER

schedulerx-groupId

ID de la aplicación.

USER_HEADER

schedulerx-user

Nombre de usuario.

MAX_ATTEMPT_HEADER

schedulerx-maxAttempt

Número máximo de reintentos para la instancia.

ATTEMPT_HEADER

schedulerx-attempt

Conteo actual de reintentos para la instancia.

JOB_PARAMETERS_HEADER

schedulerx-jobParameters

Parámetros del trabajo.

INSTANCE_PARAMETERS_HEADER

schedulerx-instanceParameters

Parámetros para una instancia específica del trabajo, que se pasan al activar el trabajo mediante una API.

Verificar resultados

Puede comprobar los resultados de ejecución de un trabajo HTTP en la página de lista de ejecuciones. Para obtener información sobre resultados exitosos, consulte GET.

Si un trabajo falla, haga clic en Details para ver el motivo específico del fallo, como se muestra a continuación:

  • El valor devuelto es diferente del valor esperado. El campo Result or Error Message en la página de detalles de la instancia muestra la causa específica del fallo. Por ejemplo, el mensaje de error The returned value is different from the expected value indica que "success":false en el JSON devuelto no coincide con el valor esperado, lo que provoca el fallo del trabajo.

  • Tiempo de espera de ejecución agotado. Cuando se agota el tiempo de espera de ejecución de un trabajo HTTP, el campo Result or Error Message en la página de detalles de la instancia muestra una excepción java.net.SocketTimeoutException, que indica un tiempo de espera de conexión de socket agotado.