Este tema describe cómo crear un trabajo de script mediante la escritura de un script en Shell, Python o PHP.
Cómo funciona
A continuación se muestra un diagrama que ilustra el funcionamiento de los trabajos de script.

Para usar trabajos de script, debe desplegar
schedulerx-agenten las máquinas de destino. El agente se comunica con el servidor, recibe los comandos para ejecutar el script y devuelve los resultados de la ejecución.Instale todas las dependencias obligatorias del script en las máquinas de destino, como bibliotecas de Python u otros archivos.
Cuando se ejecuta un script,
schedulerx-agentbifurca unchild processpara ejecutarlo. Este proceso secundario consume memoria en la máquina host, no en el propioschedulerx-agent. La cantidad de memoria consumida depende de las operaciones del script. Si ejecuta varios trabajos de script de forma simultánea, puede agotar la memoria de la máquina. Para scripts que demandan muchos recursos, se recomienda usar Kubernetes job para ejecutarlos en un pod.
Requisitos previos
Para ejecutar scripts, schedulerx-agent must be deployed.
Crear un trabajo de script
Inicie sesión en la consola de SchedulerX. En el panel de navegación izquierdo, vaya a la página Task Management y create a job. Establezca Job Type en script job.
Introduzca un valor en Task Name y Description, seleccione un Application ID, establezca la priority (Medium de forma predeterminada) e introduzca los parámetros obligatorios en el campo Task Parameters.
Paso 1: Seleccione un lenguaje de script
Seleccione un Script Language. SchedulerX admite Shell, Python y PHP.
Paso 2: Comando de ejecución
Especifique el comando para ejecutar el script según el lenguaje:
Script de Shell: de forma predeterminada es
/bin/sh.Script de Python: de forma predeterminada es
python. Puede cambiarlo apython2opython3.Script de PHP: de forma predeterminada es
php.
Paso 3: Formato de archivo
Los formatos de archivo unix y windows usan distintos caracteres de fin de línea.
Si el script se va a ejecutar en un sistema
Windows, seleccionewindows.Si el script se va a ejecutar en un sistema
Linux/Unix/Mac, seleccioneunix.
Si escribe el script en un sistema Windows pero lo ejecuta en un sistema Linux, establezca File format en unix.
Paso 4: Modo de ejecución
Requisito previo: debe estar desplegado schedulerx-agent. Para obtener más información, consulte Connect an agent (for Script or HTTP jobs).
Execution Mode:
Stand-alone operation: SchedulerX selecciona de forma aleatoria uno de los agentes desplegados para ejecutar el script.
Broadcast run: SchedulerX ejecuta el script de forma simultánea en todos los agentes desplegados. Este modo se usa para operaciones por lotes y tareas de mantenimiento.
Shard run: distribuye la ejecución del trabajo entre varios agentes. Para obtener más información, consulte Create a Python sharding job.
Escribir y editar el script
Después de crear un trabajo de script, SchedulerX genera una plantilla de script predeterminada según el lenguaje seleccionado. En la página Edit Script, haga clic en Edit Script para modificar el script.
La lista de trabajos muestra el Execution mode de cada uno (por ejemplo, Stand-alone operation) e incluye un botón EditScript para aplicar modificaciones.
Gestionar versiones de scripts
La página Edit Script incluye una función de historial de versiones del script. En la página EditScript, habilite el interruptor Historical versions para abrir la vista de comparación de versiones.
El panel izquierdo muestra la versión actual y el panel derecho muestra una versión histórica.
Seleccione una versión en la lista desplegable para consultar sus detalles, incluidas las notas de la versión y la fecha de creación.
Después de modificar el script, haga clic en Confirm e introduzca un nuevo version name cuando el sistema lo solicite.
Demostración
Broadcast run
-
Conecte dos instancias de
schedulerx-agent.En el panel Connected Instances, compruebe que ambas instancias (por ejemplo, 172.16.13.125 y 172.16.13.120) estén conectadas como pods de la versión 1.12.5 y que su health status sea Healthy.
-
Cree un trabajo de script con Shell como Script Language y Execution Mode como Execution mode. Use el siguiente contenido de script:
#!/bin/bash # #{schedulerx.shardingId} is the shard ID echo "shard ID: #{schedulerx.shardingId}" # #{schedulerx.shardingNum} is the total number of shards echo "total shards: #{schedulerx.shardingNum}" echo "hello world" exit 0 En la columna Actions del trabajo de destino, haga clic en Run once.
-
Vaya a la página Execution List. Busque la instancia del trabajo y haga clic en Log en la columna Operation para consultar la salida de cada máquina.
-
El registro de
172.16.13.125indica que el identificador del fragmento es 1 y el total de fragmentos es 2.time : 2025-04-22 17:05:26 --- ip : 172.16.13.125:34487 executionId : 10496431_74039165530_1 level : INFO log : total shards: 2 time : 2025-04-22 17:05:26 --- ip : 172.16.13.125:34487 executionId : 10496431_74039165530_1 level : INFO log : hello world time : 2025-04-22 17:05:26 --- ip : 172.16.13.125:34487 executionId : 10496431_74039165530_1 level : INFO log : shard ID: 1 time : 2025-04-22 17:05:26 El registro de
172.16.13.120indica que el identificador del fragmento es 0 y el total de fragmentos es 2.
-
Shard run
-
Cree un trabajo de script con Shell como Script Language y Execution Mode como Execution mode. Configure el resto de los ajustes del trabajo de la siguiente manera:
Establezca Execution command en
/bin/sh, File format en unix, Executor en Agent, Priority en Medium y Sharding parameter en0=hangzhou,1=shanghai,2=beijing,3=shenzhen. -
Una vez creado el trabajo, haga clic en el botón Edit Script e introduzca el siguiente contenido de script:
#!/bin/bash # #{schedulerx.shardingId} is the shard ID echo "shard ID: #{schedulerx.shardingId}" # #{schedulerx.shardingParameters} is the sharding parameter echo "sharding parameter: #{schedulerx.shardingParameters}" echo "hello world" exit 0 En la columna Actions del trabajo de destino, haga clic en Run once.
-
Vaya a la página Execution List. Busque la instancia del trabajo y haga clic en Log en la columna Operation para consultar el parámetro de fragmentación asignado a cada máquina.
Los registros indican que
172.16.13.120se ejecutó dos veces y procesó los fragmentoshangzhouybeijing.Los registros indican que
172.16.13.125también se ejecutó dos veces y procesó los fragmentosshenzhenyshanghai.
Documentación relacionada
Para consultar la lista de variables del sistema integradas, consulte System variables for script jobs.