Pregunta

Tengo mi flujo de trabajo alojado en un flujo de trabajo de trabajo que se ejecuta en IIS5 (el entorno de producción será IIS6) con una base de datos de persistencia. Es un servicio de solicitud/aprobación, por lo que hay un retraso (unos días) mientras se espera la aprobación y si ese retraso pasa sin aprobación, el flujo de trabajo envía un correo electrónico al aprobador. He notado que los flujos de trabajo pendientes solo "se despiertan" y envían sus correos electrónicos si inmovilizo una nueva solicitud (es decir, una nueva instancia de flujo de trabajo). Supongo que al iniciar un nuevo flujo, algo verifica el almacén de instancias en busca de instancias que se reanuden y las reanuden. Acabo de notar el problema porque anteriormente estaba probando con retrasos que eran solo unos minutos en lugar de días. Todavía no lo he probado en IIS6, pero espero que sea lo mismo.

P1) ¿Necesito escribir una aplicación de consola o algo para verificar periódicamente y reanudar los flujos y, de ser así, alguien puede aconsejar cómo hacerlo? ¿O acabo de hacer algo mal?

P2) Suponiendo que la respuesta a Q1 es "sí, debe escribir algo" si tuviera que usar IIS7 y AppFabric (que puede ser posible) el sueño/currículum funcionaría sin que yo tenga que escribir ningún código para verificar y reanudar los flujos? es decir, implementa el servicio de flujo de trabajo en AppFabric y funciona?

Gracias por adelantado.

¿Fue útil?

Solución

La respuesta a Q1 es sí. Después de que un AppDomain de IIS recicla, no se reinicia hasta que haya una solicitud externa para ello. Como resultado, el trabajo de flujo de trabajo no está activo y las actividades de retraso caducado no se reanudarán. Con versiones de IIS antes de 7, debe crear una solicitud externa para asegurarse de que WorkflowserviceHost esté disponible. La forma más fácil de hacerlo es solo que un servicio de Windows recupere periódicamente la página WSDL.

Si su actualización a IIS7 y AppFabric puede configurar un servicio para comenzar automáticamente tan pronto como se ejecute IIS y eso se encargará del mismo problema. Preferiría esta opción ya que AppFabric le brinda muchos beneficios adicionales como el seguimiento.

Otros consejos

Sí, el servicio de administración de flujo de trabajo de Windows Server Windows se despierte de flujos de trabajo con temporizadores pendientes. Obtienes esto gratis y otras golosinas.

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