Escribo una aplicación que debe hacer algunas cosas en segundo plano: revisar correos electrónicos y analizarlos para inyectar datos en una base de datos y conectarse a un servicio web para verificar el estado de algunos operaciones asincrónicas.Detectando poca actividad de usuario y revisando correo electrónico en segundo plano
En este momento, mi solución es un temporizador simple que realiza estas operaciones en un programa predefinido: correo electrónico cada cinco minutos y servicio web comprueba cada minuto (pero estos solo se realizan si hay actividad pendiente, por lo que la mayoría de las veces esto no hace nada.)
Ahora no estoy usando un hilo para esto (estoy en una etapa temprana de desarrollo). Pero mi plan es crear un hilo de fondo y dejarlo hacer el trabajo fuera de línea.
par de preguntas:
- tengo la intención de controlar todo en el temporizador (s). Configure una variable global ("bloqueo" rudimentario), inicie el hilo. Si el "bloqueo" ya está configurado, ignórelo. El hilo lo limpia en la terminación. ¿Debo usar un mecanismo de bloqueo/cola más robusto para mis hilos? (Ya tengo instalado OmniThread)
- ¿Cómo puedo ejecutar un hilo con baja prioridad? No quiero que la aplicación se sienta lenta cuando el hilo de fondo está realizando una inserción de datos o una red.
- ¿Existe alguna forma clara de verificar la actividad del usuario y comenzar esta secuencia solo cuando el usuario no está ocupado con el teclado/mouse?
Tenga en cuenta que no tengo experiencia con los hilos. Escribí una aplicación de sincronización de FTP una vez, así que no soy un completo novato, pero eso fue hace mucho tiempo.
Esta es una aplicación que le permite crear/editar facturas, etc. Pero también necesita leer el correo electrónico y analizarlo para inyectar facturas electrónicas adjuntas como documentos recibidos, y conectarse a la oficina de impuestos para obtener el estado de las facturas enviadas . No quiero interrumpir al usuario para estas operaciones, así que quiero que se ejecuten en segundo plano. –
Si su fondo no tiene una interacción directa con su aplicación, le sugiero que use un servicio por separado (puede configurarlo con baja prioridad si lo desea) para ejecutarlos. Entonces, esos trabajos pueden procesarse incluso si su aplicación está cerrada o incluso si ningún usuario inició sesión. – Justmade
@Justmade - Sí quiero recibir una notificación cuando lleguen nuevos correos electrónicos (facturas). –