10 votos

Programación de inicio y parada de los servicios de mapas con Python

Es posible mediante programación detener e iniciar los servicios de mapas de ArcGIS Server utilizando Python?

12voto

Jake Puntos 126

Para aquellos que estén interesados, mediante AGSSOM como se recomienda por el D. E. Wright, he creado el siguiente código. Esto se detenga todos los servicios que permiten realizar geodatabase de tareas y, a continuación, reinicie previamente los servicios en ejecución.

import os, subprocess

#Get list of currently running map services
stream = os.popen('D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe -list')
mapservices = stream.readlines()
lstStarted = []

for item in mapservices:
    itemSplit = item.split(',')
    if len(itemSplit) > 1:
        if itemSplit[1].find("Started.") > -1:
            lstStarted.append(itemSplit[0])

#Shutdown all map services
subprocess.call(['D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe', '-x', '*all*'])

##...Perfom geodatabase tasks here

#Restart previously running map services
for mapservice in lstStarted:
    subprocess.call(['D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe', '-s', mapservice])

8voto

Jonny Puntos 207

Para determinados servicios, como podría línea de comandos para mantener ArcIMS? No; hay una línea de comandos de la herramienta se puede descargar desde la Galería de Código (AGSSOM) que le da el núcleo de las principales áreas.

Pero no hay granular "servicio específico" nivel de control que puede utilizar en este momento para Iniciar/Detener/Actualizar/Añadir/Quitar AGS servicios. Hay en ideas.arcgis.com varios lugares con peticiones para mejorar el control de los servicios de un más automatizable ubicación.

3voto

Ricky Puntos 3648

En la misma línea que lo que Jeff Berry publicado en su respuesta, escribí una pequeña función que se encargará de gestionar los servicios de mapas de uso de la AGSSOM herramientas. En mi caso, yo llame a servicios individualmente por su nombre, de parada y de arranque de una en una.

import subprocess

def manageMapServices(command, svc, svcType):
    PathToAGSSOM = r"C:\Windows\AGSSOMUtils\AGSSOM"
    server = "AGSSOM"
    p = subprocess.Popen(PathToAGSSOM + " " + server + " " + command + " " + svc + " " + svcType)
    p.wait()

A continuación, puede llamar a un servicio por el nombre de usar-x para detener y -s para comenzar:

manageMapServices("-s", "Folder/Service", "MapServer")

2voto

ericchiasson Puntos 847

En ArcGIS for Server 10.1+ puede utilizar el ArcGIS Server Administration Toolkit - 10.1+

A partir de la descripción (el énfasis es mío):

La Administración de ArcGIS Server kit de herramientas proporciona las herramientas y scripts para ayudarle a administrar su cuenta de ArcGIS Server. Estas herramientas han sido escritos en Python y la conecta con el RESTO de Administrador de ArcGIS Server que permite a rápidamente y fácilmente realizar algunas funciones administrativas, incluyendo: - Elemento de la lista

  • Detener, iniciar o eliminación de un servicio
  • Cambiar el nombre de un servicio
  • Modificar el nivel de registro y borrar los registros antiguos
  • Cargar y registrar un SOE
  • La creación de un featureclass de las ubicaciones de un servicio de mapas fue visto en (por la inspección de los registros)
  • Servicio De Publicación De Definiciones.SD)

Las herramientas dentro de este kit se presenta en tres formas principales: Herramientas de Código, y ejecutable independiente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X