SRE从踩坑到牛逼(三)利用Python重启Arcgis站点和Arcgis服务
admin
2024-04-11 15:41:35
0

TODO 分析Python3.9和Python2.7的差异 已完成
TODO 使用Python2.7编写Arcgis站点重启脚本 已完成
TODO 了解Arcgis Python服务启停API
TODO 加入Arcgis Python服务监控+启停功能

利用Python重启Arcgis站点和Arcgis服务

  • 前景提要
    • 为什么写
    • 为什么用Python2.7
  • Python3.9和Python2.7的差异
    • 了解差异化
    • 参考页面
    • 真正需要注意的地方
  • 使用Python2.7编写Arcgis站点重启脚本
  • Arcgis Python服务启停API
  • 加入Arcgis Python服务监控+启停功能
  • 修改为多线程模式

前景提要

为什么写

在前文 随手记录,写了一个自动化监控重启Arcgis站点脚本 中,使用多个cmd脚本+curl进行站点监控和服务启停,存在问题curl超时以后程序会整个卡住,而不是重启服务,考虑到参数没有问题,应该是Windows版本的curl的bug。
打算使用Arcgis自带Python处理该问题。

为什么用Python2.7

Arcgis10.6 依托于Python2.7,自带 Python2.7 环境。虽然使用我熟悉的版本Python3.9~3.11是可以解决重启站点的问题,但是Arcgis本身的接口是只支持Python2.7的,为了程序具有扩展性,除了能够处理Arcgis站点服务重启,还能做到Arcgis内的具体每个地图服务重启,要选用Python2.7。

Python3.9和Python2.7的差异

了解差异化

工欲善其事必先利其器,在开始之前,需要了解我熟知的Python3.9和Python2.7之间的差异。

参考页面

https://www.runoob.com/python/python-2x-3x.html
https://blog.csdn.net/pangzhaowen/article/details/80650478
https://blog.csdn.net/qq_39521554/article/details/80855086

真正需要注意的地方

  • print
    使用from __future__ import print_function使得Python2.7支持Python3 print() 语法
    但是print(f"txt {data}") 这种格式化输出是Python3.6才开始支持的,不要使用
  • 源码文件使用 utf-8 编码
    Python3源码文件默认使用 utf-8 编码,在Python2中,要在第一行加入# -*- coding:utf-8 -*-以支持utf-8。
  • input()差异
    Python3的input()相当于Python2的row_input(),获取到的就是str类。不过脚本不涉及输入,不影响
  • 除法
    Python3的/是小数除,Python2的/是类C语言逻辑,被除数是float就是小数除,被除数是int就是地板除。脚本应当不涉及这部分。
  • 异常处理
    Python3 try…except Exception as e
    Python2 try…except Exception, e
    写法不一样,as改,
  • 类的差异
    Python2 中存在老式类和新式类的区别,Python3 统一采用新式类
    但是一般写的时候是 Class mycls(object)就不影响

使用Python2.7编写Arcgis站点重启脚本

考虑到扩展性,后续要使用Arcgis提供的API进行地图服务的启停,应当进行操作和监控分离设计
依赖:os库,urllib库,time库
差异:Python2中urllib.request库要改为urllib2库
范本:使用我之前写的重启java应用的文章 SRE从踩坑到牛逼(一)利用Python+CMD进行java应用的监控和重启中的代码进行改造

现代码,基于Python2.7

# -*- coding:utf-8 -*-# 依赖库
from __future__ import print_function
import time
import os
from urllib2 import Request, urlopenclass Configs(object):""" 测试工具所用的所有信息 """def __init__(self):#测试 urlself.urls = {"rest": {"url": "http://127.0.0.1:6080/arcgis/rest/services/","scripts": [ 'net stop "Arcgis Server"', 'ping 127.0.0.1 -n 5', 'taskkill /F /IM ArcSOC.exe', 'ping 127.0.0.1 -n 5', 'net start "Arcgis Server" ' ],"scripts_type": "cmd","status": "200"},}def main():print("running.......")configs=Configs()urls = configs.urlswhile True:# initialfor key in urls.keys():print("check ",key," :  ",urls[key]["url"],"\n")req = Request(urls[key]["url"])try:x = urlopen(req)urlcode = x.getcode()if not urlcode == urls[key]["status"]:raise Exception("status ",urlcode)except:if urls[key]["scripts_type"]=="cmd":for script in urls[key]["scripts"]:try:os.system(script)finally:# 忽略报错pass# 为加入Arcgis Python服务监控+启停功能留出代码逻辑# 如果是大于三种脚本方式,建议此处改为函数map以提升效率elif(urls[key]["scripts_type"]=="python"):passelse:passfinally:# x.close()# 这里x.close()引发错误# “UnboundLocalError: local variable 'x' referenced before assignment”# Python3的变量作用域是整个函数,难道Python2不是?# breaktime.sleep(60)if __name__ == "__main__":main()

Arcgis Python服务启停API

加入Arcgis Python服务监控+启停功能

修改为多线程模式

相关内容

热门资讯

邱淑贞丈夫花费4200万购入半... 沈嘉伟又出手了,4200万港元,中半山地利根德阁3座中层B室,实用面积1602平方呎,三房连一套房。...
Meta拟聘请亚马逊云科技高管... 7月17日消息,据财联社获悉,亚马逊云科技(AWS)资深高管戴夫·布朗即将入职Meta。 据知情人士...
一场年中大促后,美国兴趣电商走... 封面图片由AI生成 海外“618”,兴趣电商在美国的一次大考。 对关注美区的跨境卖家来说,年中大促季...
原创 半... 半年回撤近三成,金价大幅回调,四大核心信号辨别本轮行情属性 很多普通投资者最近都十分困惑,年初还一路...
原创 中... 近期全球黄金市场出现反常一幕:国际金价今年早些时候冲高后已下跌近 30%,但中国市场却掀起了一股购金...
原创 从... 顶着“人类太空希望”光环的SpaceX,连续三个交易日股价下挫,跌破 IPO 发行价。过去的Spac...
【数智化人物展】衡石科技创始人... 刘诚忠 “【提示】2026第六届数智化颁奖典礼将于8月5日在北京举行颁奖点击可报名参加颁奖典礼丨此次...
泽连斯基一个拧瓶盖动作,违反了... 在今天的欧洲,有什么行为能让你瞬间成为“环保罪人”? 答案荒诞得像个段子:你只要把塑料瓶盖完完整整地...
阿里巴巴香港创业者基金何定康:... 【导读】NextGen Partners 合伙人何定康 (Kenny Ho) 认为,全球投资者已形成...
早睡早起和晚睡晚起,到底谁更健... 很多人都有过这样的自我安慰:虽然我凌晨两点才睡,但第二天睡到上午十点,照样睡满8小时,应该不算熬夜。...
LV老板被责令补税,高达1.7... 7月17日消息,据中新经纬,近日,在一场持续多年的法律诉讼后,法国首富、LVMH掌门人贝尔纳·阿尔诺...
原创 黄... 来源 | 《财经》新媒体 文丨《财经》新媒体研究员 蒋金丽 编辑丨蒋诗舟 经历了短暂反弹后,国际金价...
Atlas关停,AI浏览器没有... 根据OpenAI官方文档,Atlas将于2026年8月9日停止运行。用户需要提前迁移想保留的数据,包...
心理咨询师2026年小红书导流... 「小红书公转私」是指在小红书平台上,通过合规的内容运营和互动策略,将公域流量用户引导至微信等私域渠道...
小鹏就空气弹簧故障致歉,小米汽... 今天是 7 月 17 日 农历六月初四 杭州怎么就 38 度了 这个天气 一出门就感觉 正在被低温慢...
光模块龙头中际旭创通过港交所聆... 7月17日,港交所披露文件显示,全球高速光模块龙头中际旭创顺利通过主板上市聆讯,距离完成A+H两地上...
2026年A股最大IPO来了,... 7月16日,中国存储芯片龙头长鑫科技正式开启网上申购。这家存储芯片龙头企业,即将创下今年A股最大IP...
西部利得基金旗下一基金成立15... 深圳商报·读创客户端记者 詹钰叶 西部利得基金旗下最“资深”产品西部利得策略优选近来引起投资者关注—...
振石股份:548.86万股首发... 7月17日, 振石股份(601112.SH)公告称,本次上市流通的限售股为首次公开发行网下配售限售股...
解码上半年外汇收支:涉外收支破... 来源:21世纪经济报道 21世纪经济报道 记者郭聪聪 7月17日上午,国新办举行2026年上半年外汇...