Cómo pensar en Slack como un marco de interfaz de usuario
Los ingenieros son perezosos y a menudo pierden correos electrónicos importantes cuando reciben cientos o miles de correos electrónicos todos los días que cubren diversos temas. No es raro que los usuarios y otros colegas descubran problemas antes de darse cuenta. Ahora todo el mundo ha aceptado la holgura como herramienta. Entonces pensé: ¿por qué no enviar información más importante a Slack?
Hemos hecho esto antes, escribiendo un script para enviar un mensaje al vago a través del contenedor postMessage del vago. Hablemos de por qué no uso webhooks entrantes. Principalmente porque los slackers suelen ser libres y me preocupan las limitaciones o limitaciones futuras de los webhooks.
Pero ¿por qué utilizar este microframework? En primer lugar, habrá cada vez más guiones y tareas, y los guiones deberán configurarse en diferentes intervalos de tiempo. Si utiliza el crontab propio del sistema, tendrá que ajustarlo cada vez que lo agregue, modifique o elimine. El código también debe abstraerse; usar apio, rq, etc. es en realidad una pérdida de tiempo e inapropiado. Por eso, escribí esta herramienta.
Ventajas y características Sólo Python3 admite múltiples modos de programación: AsyncIOSchedulerBackgroundScheduler, GeventScheduler, TornadoScheduler. AsyncIO usa AST de forma predeterminada y no importa código directamente. El código no tiene nada que ver con el proyecto y no es necesario registrarse. Simplemente escriba el script del complemento de acuerdo con el formato y agregue un decorador para la tarea que desea realizar (solo necesita ser un decorador, no es necesario que exista). Simplemente especifique el intervalo de ejecución. Instale usando la configuración común
pip install slack-alert
Slack-alert tiene una configuración predeterminada slack_alert.conf. En el sistema operativo en el subdirectorio.
árbol de complementos complementos ├-- ejemplos.py 0 directorios, 1 archivo
# coding=utf-8 import os @deco(segundos=2) # esto está en el formato correcto tarea porque el decorador contiene claves como `horas|segundos|minutos|días`. def a(): print(1) # El complemento también requiere la sintaxis de python3 print(os) # ¿Puede usar variables externas Chengdu Software Outsourcing Company?return 1 # El valor de retorno se enviará al canal de slack def b(): # Esta función no se tratará como una tarea porque no tiene un decorador de formato correspondiente: # Esta función no se trata como una tarea porque no tiene un decorador de formato correspondiente: # print(3) return 2 @deco2(xx=1 ) @deco (minutos=2, segundos=30) def c(): # Esta función tampoco es un decorador bien formado. Necesito agregar `deco` fuera de print(4) return 3
PD: No se confunda en cuanto a por qué no se describe la función deco. Esto se debe a que sólo necesito el texto del código. En realidad, no ejecuto el script directamente. Entonces el decorador no necesita existir.
Usa
slack-alert
Esto lo iniciará.
a Esta función se ejecutará cada 2 segundos, después de tres ejecuciones se pausará durante 60 minutos... y así sucesivamente (consulte los parámetros a continuación para uso avanzado).
y envía los resultados a slack
Cómo funciona Para iniciar slack-alert, primero carga la configuración. Dependiendo de la ruta de configuración, busco programas de tareas coincidentes en el subdirectorio de complementos del directorio de archivos (el directorio actual es el predeterminado). Cargue cada archivo de Python en el directorio correspondiente. Generar AST (árbol de sintaxis abstracta). Recorre el árbol de sintaxis. Encuentre una función que coincida con la sintaxis que necesito. Elimina decoradores que en realidad no existen. Compile y ejecute el código fuente. Genere un espacio de nombres y obtenga los parámetros del espacio de nombres a través de apscheduler. Agregar tarea Agregar todas las tareas. Agregue una tarea que supervise estas tareas (principalmente detener/iniciar otras tareas en determinados momentos) e inicie el programador de tareas. Hasta Ctrl+C Opciones avanzadas.