Red de conocimiento informático - Material del sitio web - Cómo usar herramientas de depuración serial para controlar el intervalo de tiempo de envío de múltiples comandosPodemos usar las clases Timer y TimerTask para implementar tareas programadas en java, de la siguiente manera: 1. Conocimientos básicos java.util .Timer Es una función de subprocesos que se utiliza para programar tareas que se ejecutarán más tarde en un subproceso en segundo plano. Las tareas se pueden programar una vez o repetir periódicamente. Estas tareas son seguras para subprocesos: varios subprocesos pueden disfrutar de un único objeto Timer sin sincronización externa. java.util.TimerTask es una tarea programada por Timer para ejecución única o repetida. 2. Código de muestra Este ejemplo implementa dicha función. Durante la ejecución del sistema, cada 30 minutos, el sistema verifica automáticamente la cantidad de conexiones disponibles en el grupo de conexiones y lo envía al registro. Primero cree una clase de tarea que deba ejecutarse con regularidad. Esta clase de tarea debe heredar TimerTask y luego reescribir el método run (). El código en el cuerpo del método run () es la operación que debe ejecutarse con regularidad. En esta demostración, se trata de obtener el grupo de conexiones actual. El número de conexiones disponibles en el registro y su salida. El código de implementación específico es el siguiente: publicclassTaskAvailableConnectNumberextendsTimerTask{privateLoggerlog=Logger.getLogger(TaskAvailableConnectNumber.class); getInstance(); @Overridepublicvoidrun(){log.debug("Grupo de conexiones actual El número de conexiones disponibles en el grupo.getAvailableConnectNumber()); }}. A continuación se define un oyente, que es responsable de activar el temporizador cuando se inicia el servidor de aplicaciones. El oyente debe implementar la interfaz ServletContextListener y anular los métodos contextInitialized() y contextDestroyed(). El código es el siguiente: publicclassOnLineListenerimplementsServletContextListener{privateLoggerlog=. Logger.publicclassOnLineListenerimplementsServletContextListener{privateLoggerlog =Logger(OnLineListener.class);Timertimer=null;//Este método se ejecutará cuando se inicie el servidor de aplicaciones publicvoidcontextInitialized(ServletContextEventarg0){/Cree un temporizador para programar tareas que deben realizarse a intervalos regulares .timer=newTimer( ); // Programe las tareas que deben ejecutarse periódicamente para el temporizador. La tarea es la clase de tarea TaskAvailableConnectNumber creada previamente y está especificada para ejecutarse cada 30 minutos.

Cómo usar herramientas de depuración serial para controlar el intervalo de tiempo de envío de múltiples comandosPodemos usar las clases Timer y TimerTask para implementar tareas programadas en java, de la siguiente manera: 1. Conocimientos básicos java.util .Timer Es una función de subprocesos que se utiliza para programar tareas que se ejecutarán más tarde en un subproceso en segundo plano. Las tareas se pueden programar una vez o repetir periódicamente. Estas tareas son seguras para subprocesos: varios subprocesos pueden disfrutar de un único objeto Timer sin sincronización externa. java.util.TimerTask es una tarea programada por Timer para ejecución única o repetida. 2. Código de muestra Este ejemplo implementa dicha función. Durante la ejecución del sistema, cada 30 minutos, el sistema verifica automáticamente la cantidad de conexiones disponibles en el grupo de conexiones y lo envía al registro. Primero cree una clase de tarea que deba ejecutarse con regularidad. Esta clase de tarea debe heredar TimerTask y luego reescribir el método run (). El código en el cuerpo del método run () es la operación que debe ejecutarse con regularidad. En esta demostración, se trata de obtener el grupo de conexiones actual. El número de conexiones disponibles en el registro y su salida. El código de implementación específico es el siguiente: publicclassTaskAvailableConnectNumberextendsTimerTask{privateLoggerlog=Logger.getLogger(TaskAvailableConnectNumber.class); getInstance(); @Overridepublicvoidrun(){log.debug("Grupo de conexiones actual El número de conexiones disponibles en el grupo.getAvailableConnectNumber()); }}. A continuación se define un oyente, que es responsable de activar el temporizador cuando se inicia el servidor de aplicaciones. El oyente debe implementar la interfaz ServletContextListener y anular los métodos contextInitialized() y contextDestroyed(). El código es el siguiente: publicclassOnLineListenerimplementsServletContextListener{privateLoggerlog=. Logger.publicclassOnLineListenerimplementsServletContextListener{privateLoggerlog =Logger(OnLineListener.class);Timertimer=null;//Este método se ejecutará cuando se inicie el servidor de aplicaciones publicvoidcontextInitialized(ServletContextEventarg0){/Cree un temporizador para programar tareas que deben realizarse a intervalos regulares .timer=newTimer( ); // Programe las tareas que deben ejecutarse periódicamente para el temporizador. La tarea es la clase de tarea TaskAvailableConnectNumber creada previamente y está especificada para ejecutarse cada 30 minutos.

timer.schedule(newTaskAvailableConnectNumber(), 0, 30*60*1000); log.debug("Starting timer");}// Al cerrar el servidor de aplicaciones, este método se ejecutará para completar el apagado del temporizador. publicvoidcontextDestroyed(ServletContextEventarg0){if(timer!=null){timer.cancel();//cerrar el temporizador log.debug("----- destrucción del temporizador --------");}} escuchando Para que el servidor se ejecute normalmente, se debe configurar la siguiente información de configuración en el archivo web.xml: cn.sdfi.listen.OnLineListener Después de completar los pasos anteriores, se completa el desarrollo de un temporizador simple.