美文网首页python学习之路
python模拟监控服务(观察者模式)

python模拟监控服务(观察者模式)

作者: Alcazar | 来源:发表于2019-06-01 21:56 被阅读28次
程序设计:

有三台服务器,每隔5s向某台服务器发送请求,看是否获取正常的返回值。
如果返回正常True,则继续监控;如果连续3次没有返回正常值False,则向指定服务器负责人发送信息通知;

关于python设计模式之观察者模式(参考)
代码实现:

import random
class Server:
    def __init__(self,name):
        self.times = random.randint(3,10)
        self.name = name

    def connect(self):
        if self.times > 0:
            self.times -= 1
            return True
        return False

class Monitor:
    def __init__(self):
        # 监控列表
        self.servers = []
        self.admins = []

    def add_server(self,server):
        self.servers.append(server)
        return self

    def add_admin(self,admin):
        self.admins.append(admin)

    def test(self):
        for server in self.servers:
            if not server.connect():
                # 通知相关者
                for admin in self.admins:
                    Advisor.send_sms(admin,server.name + "链接异常~!")
                pass
            else :
                print(server.name + "测试正常...")

class Advisor:
    @staticmethod
    def send_sms(admin,msg):
        print('向' + admin + "发送信息:" + msg)

monitor = Monitor()
monitor.add_admin("zs")
monitor.add_admin("lisi")
monitor.add_server(Server("server1")).add_server(Server("server2"))

import time
while True:
    monitor.test()
    time.sleep(3)
执行结果

相关文章

  • python模拟监控服务(观察者模式)

    程序设计: 有三台服务器,每隔5s向某台服务器发送请求,看是否获取正常的返回值。如果返回正常True,则继续监控;...

  • 设计模式之观察者模式(Observer Pattern)

    在正式介绍观察者模式前,我们先引用生活中的小例子来模拟观察者,先对观察者模式有一个整体的感觉。 现实模拟 报纸和杂...

  • 观察者模式_20190912(python)

    一、观察者模式介绍 二、观察者模式UML 三、python实现观察者模式(demo1、2) 1、demo1 """...

  • python实现模拟用户监控直播服务

    !/usr/bin/env python -- coding:utf-8 -- author: Dily Emai...

  • 服务监控

    服务监控 利用swoole 通过linux来实现服务监控 通过模拟shell命令并使用swoole方法达到2秒执行...

  • 2017-12-26

    今天黄老师讲解了python观察者模式,观察者模式有很多实现方式,从根本上说,该模式必须包含两个角色:观察者和被观...

  • 多线程observer模式

    原来java的观察者模式 subject obsever接口类 具体的观察者 运行类 多线程版本(监控线程的生命周...

  • KVO

    KVO Key-Value Observing 典型的观察者模式承载者。基于监控键值发生变化,通知观察者。K...

  • 设计模式——观察者模式

    设计模式——观察者模式 很好理解的例子 例子:李斯监控韩非子衣食住行 一个抽象接口:被观察者接口 一个抽象接口:抽...

  • 2017-12-27

    今天上午黄老师主要讲解他的项目,用python讲解了观察者模式。实现观察者模式的时候要注意,观察者和被观察对象之间...

网友评论

    本文标题:python模拟监控服务(观察者模式)

    本文链接:https://www.haomeiwen.com/subject/cvkztctx.html