120 lines
1.8 KiB
Markdown
120 lines
1.8 KiB
Markdown
|
|
El `timer` siempre se ejecuta en otro hilo.
|
|
|
|
### **once**
|
|
|
|
Ejecutar macro una sola vez en X segundos.
|
|
|
|
!!! tip "Atención"
|
|
|
|
Asegurese siempre de establecer un nombre único para cada timer.
|
|
|
|
```py
|
|
import easymacro as app
|
|
|
|
|
|
NOMBRE = 'reloj'
|
|
|
|
|
|
def mostrar_hora():
|
|
app.debug(app.dates.now.time())
|
|
return
|
|
|
|
|
|
def iniciar_conteo():
|
|
segundos = 5
|
|
macro = {
|
|
'library': 'test',
|
|
'name': 'mostrar_hora',
|
|
}
|
|
app.timer.once(NOMBRE, segundos, macro)
|
|
return
|
|
|
|
|
|
def main(args=None):
|
|
iniciar_conteo()
|
|
return
|
|
```
|
|
|
|
<br>
|
|
|
|
### **cancel**
|
|
|
|
Cancelar ejecución, antes del tiempo establecido.
|
|
|
|
```py
|
|
def main(args=None):
|
|
iniciar_conteo()
|
|
app.sleep(2)
|
|
detener_conteo()
|
|
return
|
|
|
|
def detener_conteo():
|
|
app.timer.cancel(NOMBRE)
|
|
return
|
|
```
|
|
|
|
```sh
|
|
16/08/2022 21:18:50 - INFO - Event: "reloj", started... execute in 5 seconds
|
|
16/08/2022 21:18:55 - INFO - Cancel event: "reloj", ok...
|
|
```
|
|
|
|
<br>
|
|
|
|
### **start**
|
|
|
|
Ejecutar macro cada X segundos.
|
|
|
|
```py
|
|
NOMBRE = 'reloj'
|
|
|
|
|
|
def mostrar_hora():
|
|
app.debug(app.dates.now.time())
|
|
return
|
|
|
|
|
|
def iniciar_reloj():
|
|
segundos = 1
|
|
macro = {
|
|
'library': 'test',
|
|
'name': 'mostrar_hora',
|
|
}
|
|
app.timer.start(NOMBRE, segundos, macro)
|
|
return
|
|
|
|
|
|
def main(args=None):
|
|
iniciar_reloj()
|
|
return
|
|
```
|
|
|
|
<br>
|
|
|
|
### **stop**
|
|
|
|
Detener timer.
|
|
|
|
```py
|
|
def detener_reloj():
|
|
app.timer.stop(NOMBRE)
|
|
return
|
|
```
|
|
|
|
```sh
|
|
16/08/2022 21:25:37 - INFO - Timer 'reloj' started, execute macro: 'mostrar_hora'
|
|
16/08/2022 21:25:38 - DEBUG - 21:25:38
|
|
16/08/2022 21:25:39 - DEBUG - 21:25:39
|
|
...
|
|
16/08/2022 21:25:47 - DEBUG - 21:25:47
|
|
16/08/2022 21:25:48 - DEBUG - 21:25:48
|
|
16/08/2022 21:25:48 - INFO - Timer stopped...
|
|
```
|
|
|
|
<br>
|
|
|
|
!!! warning "Cuidado"
|
|
|
|
Asegurese siempre de ejecutar macros que NO bloqueen la interfaz del usuario.
|
|
|
|
<br> |