Pregunta

¿Es posible llamar a un procedimiento almacenado desde otro procedimiento almacenado de forma asincrónica?

Editar: específicamente estoy trabajando con una base de datos DB2. & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173; & # 173;

¿Fue útil?

Solución

Resumen ejecutivo: Sí, si su base de datos tiene un servicio de cola de mensajes.

Puede insertar un mensaje en una cola y el procesador de cola lo consumirá de forma asíncrona.

  • Oracle: colas
  • Sql Server: service broker
  • DB2: agente de eventos

Para " puro " lenguajes de procedimiento almacenado (PL / Sql o T-Sql) la respuesta es no, ya que funciona en contra del modelo de transacción fundamental que tienen la mayoría de las bases de datos.

Sin embargo, si su base de datos tiene un mecanismo de cola, puede usarlo para obtener el mismo resultado.

Otros consejos

Con MS Sql Server 2005, pruebe los procedimientos almacenados de Service Broker y / o CLR. No creo que haya nada integrado directamente en TSQL.

Parece que necesitas poner algunos trabajos programados en su lugar con Cron (o equivalente de Windows). Podría usar la llamada proc almacenada inicial para establecer algún tipo de indicador en la base de datos, que luego se verifica periódicamente por un trabajo cron. Si necesita tener un retraso específico antes de que se ejecute el segundo trabajo, debe poder hacerlo programando la tarea mediante el trabajo cron.

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