Documentation for a newer release is available. View Latest

Client Library

Esta sección le guiará sobre cómo conectarse a un Persistent Scheduler externo vía HTTP. La guía para configurar su aplicación Java con el IPF Persistent Scheduler expuesto como una API HTTP está aquí.

Paso 1: Agregar dependencia

Agregue esto a pom.xml:

<dependency>
    <groupId>com.iconsolutions.ipf.core.platform</groupId>
    <artifactId>scheduler-client-connector-http</artifactId>
</dependency>

Paso 2: Configurar

Las operaciones de la API tienen propiedades configurables, a saber el host y el puerto. La configuración de referencia proporciona estos como localhost y 8080 respectivamente. Para su implementación tendrá que sobrescribir estas propiedades.

ipf.scheduler.api {
  schedule.request.http.client { (1)
    host = ${ipf.scheduler.api.http.client.host}
    port = ${ipf.scheduler.api.http.client.port}
    endpoint-url = "/api/v1/schedule-job"
  }
  update.request.http.client { (2)
    host = ${ipf.scheduler.api.http.client.host}
    port = ${ipf.scheduler.api.http.client.port}
    endpoint-url = "/api/v1/update-job"
  }
  find.request.http.client { (3)
    host = ${ipf.scheduler.api.http.client.host}
    port = ${ipf.scheduler.api.http.client.port}
    endpoint-url = "/api/v1/find-job-by-id"
  }
  cancel.request.http.client { (4)
    host = ${ipf.scheduler.api.http.client.host}
    port = ${ipf.scheduler.api.http.client.port}
    endpoint-url = "/api/v1/cancel-job"
  }

  http.client { (5)
    host = "localhost"
    port = 8080
  }
}
1 configuración para el endpoint schedule-job
2 configuración para el endpoint update-job
3 configuración para el endpoint find-job-by-id
4 configuración para el endpoint cancel-job
5 referencia de conveniencia, si todos los endpoints de la API están en el mismo host y puerto entonces puede sobrescribir este conjunto de propiedades

Por defecto, todas las propiedades de host y puerto miran la propiedad ipf.scheduler.api.http.client. Esto es por conveniencia para que no sea necesario sobrescribir individualmente todas las propiedades de host y puerto.

Paso 3: Cablear Spring Beans obligatorios

Se requiere que tenga presente en su aplicación Java un Spring Bean de:

  1. com.iconsolutions.ipf.core.messagelogger.MessageLogger

  2. akka.actor.ClassicActorSystemProvider

Paso 4: Llamar a la API

Su aplicación ahora está lista para llamar a la API HTTP externa. Esto lo hace usando el Spring Bean SchedulerConnectorInterface que fue introducido por la dependencia Maven en el Paso 1 y llamando a los métodos respectivos en la clase.

package com.iconsolutions.ipf.core.scheduler.client.connector.http.api;

import com.iconsolutions.ipf.core.platform.api.models.CancelScheduleRequest;
import com.iconsolutions.ipf.core.platform.api.models.JobSpecification;
import com.iconsolutions.ipf.core.platform.api.models.JobSpecificationWithExecutionStatusResponse;
import com.iconsolutions.ipf.core.platform.api.models.ScheduleJobSpecification;

import java.util.Optional;
import java.util.concurrent.CompletionStage;

public interface SchedulerConnectorInterface {

    CompletionStage<JobSpecification> scheduleJob(ScheduleJobSpecification scheduleJobSpecification);

    CompletionStage<Optional<JobSpecification>> cancelJob(CancelScheduleRequest cancelScheduleRequest);

    CompletionStage<Optional<JobSpecification>> updateJob(JobSpecification jobSpecification);

    CompletionStage<Optional<JobSpecificationWithExecutionStatusResponse>> findJobById(String id);

}

Para más información sobre cómo programar su primer trabajo, por favor vea Programación de su primer trabajo (a través de la biblioteca de cliente HTTP)