Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

Configurar la función

Comencemos a codificar el microservicio. El directorio de funciones, en este caso functions/countfunction, contiene:

  • El archivo principal de función CountAlert.java
  • El archivo de configuración catalyst-config.json
  • Los archivos de biblioteca JAR
  • Otras dependencias

Agregaremos código en el archivo CountAlert.java. Puedes usar cualquier IDE de tu elección para configurar la función.

Nota: Por favor revisa el código proporcionado en esta sección para comprenderlo mejor.

Copia el código que se muestra a continuación y pégalo en CountAlert.java y guarda el archivo.

CountAlert.java
copy
import com.catalyst.Context;
import com.catalyst.basic.BasicIO;
import com.catalyst.basic.ZCFunction;
import com.zc.component.cache.ZCCache;
import com.zc.component.mail.ZCMail;
import com.zc.component.mail.ZCMailContent;
import java.util.logging.Logger;
import java.util.logging.Level;
public class CountAlert implements ZCFunction {
 private static final Logger LOGGER = Logger.getLogger(CountAlert.class.getName());
 private static final String FROM_EMAIL="emma@zylker.com"; // La dirección de correo electrónico del remitente. Reemplaza esto con la dirección de correo que configuraste en Mail.
 private static final String TO_EMAIL="brandon.cooper@zylker.com"; // Reemplaza esto con la dirección de correo electrónico a la que deseas que se envíe el correo de alerta.
 @Override
    public void runner(Context context, BasicIO basicIO) throws Exception {
  try {
   // Pasa el nombre de la funcionalidad que se obtuvo de la entrada como parámetro. El nombre de la funcionalidad puede ser 'CRM' o 'Desk'.
   String featureName = (String) basicIO.getParameter("feature_name");
   // Pasa el conteo umbral que se obtuvo de la entrada como parámetro
   String mailCountThreshold = (String) basicIO.getParameter("mail_count_threshold");
   // Obtiene el conteo actual para la funcionalidad desde el segmento predeterminado de Catalyst Cache
   String value = ZCCache.getInstance()
          .getCacheValue("COUNTER_" + featureName)
          .getValue();
   // Si el valor es null, entonces el conteo se establece en 1. Esto se hace durante la primera ejecución para la funcionalidad.
   if (value == null) {
    ZCCache.getInstance()
        .putCacheValue("COUNTER_" + featureName, String.valueOf(1), 1l);
   } else {
    Integer count = Integer.valueOf(value);
    // Si el valor no es null, entonces el conteo se incrementa en 1.
    count++;
    // Escribe el valor del conteo en el segmento predeterminado de Catalyst cache
    ZCCache.getInstance().putCacheValue("COUNTER_"+featureName,count.toString(),1l);
    // Si el conteo actual es mayor que el valor umbral, entonces se envía una alerta por correo al receptor configurado arriba
    if (count > Integer.valueOf(mailCountThreshold)) {
     ZCMailContent content = ZCMailContent.getInstance();
     content.setFromEmail(FROM_EMAIL);
     content.setSubject("Alert!");
     content.setContent("Count exceeded the threshold limit for the feature:" +featureName);
     content.setToEmail(TO_EMAIL);
     ZCMail.getInstance()
        .sendMail(content);
     LOGGER.log(Level.INFO, "Email alert sent");//Escrito en los logs. Puedes ver este log desde Logs bajo la sección Monitor en la consola
    }
   }
   // Maneja el código de estado 200
   basicIO.setStatus(200);
   basicIO.write("The function executed successfully");
  }catch(Exception e)
  {
   LOGGER.log(Level.SEVERE,"Exception occurred while processing",e); //Escrito en los logs. Puedes ver este log desde Logs bajo la sección Monitor en la consola
   // Maneja el código de estado 500, cuando ocurre una excepción
   basicIO.setStatus(500);
   basicIO.write("Error in the function execution");
  }
 }
}

View more

Nota: Antes de continuar con el siguiente paso, asegúrate de reemplazar los valores de FROM_EMAIL en la línea 14 y TO_EMAIL en la 16 en el código como se indica.

Funcionamiento de la función Basic I/O

Como se discutió en la Introducción, la función obtiene las entradas para las variables feature_name y mail_count_threshold del usuario a través de la API, cuando se invoca. Obtiene el valor actual del contador desde la caché y luego lo incrementa en 1 después de cada invocación. Luego escribe el nuevo valor del contador en la caché.

Nota: Dado que estamos usando el segmento predeterminado en Catalyst Cache, no necesitamos configurarlo. Puedes aprender más sobre esto desde la página de ayuda de Cache.

Si el valor actual del contador es mayor que el límite umbral especificado por el usuario, la alerta por correo se envía a la dirección definida en el código. Esta información también se envía a Catalyst Logs con un mensaje apropiado. Puedes verificar esto desde Logs bajo la sección Monitor en la consola de Catalyst.

Última actualización 2026-03-20 21:51:56 +0530 IST

ENLACES RELACIONADOS

Functions Functions Directory