Pregunta

Hola chicos, Me pregunto cómo se crea un planificador de tareas en Oracle APEX?

Estoy haciendo un sistema que gestiona las llamadas, cada llamada tiene un nivel de gravedad. Después de una hora, el nivel de gravedad debe ser escalada. He buscado durante horas, y supongo que tengo que hacer un procedimiento que define un planificador de tareas y luego ejecuta la actualización?

Si ustedes pudieran arrojar algunas sugerencias mi camino, te lo agradecería!

Saludos Rica

¿Fue útil?

Solución

A mi entender, la solución más simple posible que pudiera posiblemente el trabajo sería algo así como

CREATE PROCEDURE escalate_cases
AS
BEGIN
  UPDATE tickets
     SET status = 'ESCALATED'
   WHERE status = 'NOT ESCALATED'
     AND open_date < sysdate - interval '1' hour;
END escalate_cases;

DECLARE
  l_jobno PLS_INTEGER;
BEGIN
  dbms_job.submit( 
    l_jobno,
    'BEGIN escalate_cases(); END;',
    sysdate + interval '1' minute,
    'sysdate + interval ''1'' minute'
  );
  dbms_output.put_line( 'Job ' || l_jobno || ' submitted.' );
  commit;
END;

El procedimiento se intensifica todas las entradas que cumplen los criterios y el bloque anónimo crea un trabajo que se ejecuta el procedimiento cada minuto. Un único trabajo que se ejecuta cada minuto (o cada pocos minutos, dependiendo de su tolerancia a tiempo se puede esperar para escalar un boleto) va a ser más fácil de manejar que una tarea diferente para cada billete que se ejecuta exactamente 1 hora después de que se haya presentado .

Ahora, si quieres ser un poco más sofisticado, las ofertas de paquetes DBMS_SCHEDULER un poco de funcionalidad que el paquete DBMS_JOB no lo hace. Proporciona alguna registro automático, que proporciona la capacidad de puestos de trabajo en cadena, para definir varias ventanas donde los empleos y los que no funcionan (es decir, si se crea un ticket a las 5:30, puede que no quiera escalar que a las 6:30 porque es después de horas), etc. Y DBMS_SCHEDULER es la dirección de Oracle se está moviendo. Pero aún me encuentro usando DBMS_JOB para tareas relativamente simples como éste.

Otros consejos

Salida del material aquí

He utilizado el método de la lista de Justin con buenos resultados. Otro método que funciona bien es usar una cola con entrega diferida. Eso le da la capacidad de tener un programa de paginación o algo externo espera en la cola para escaladas. No estoy familiarizado con APEX así que no estoy seguro de si eso es una buena idea en ese contexto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top