Python-使用watchdog热更新

原创 2018年04月16日 10:42:03

直接上代码:

import importlib
from watchdog.observers import Observer
from watchdog.events import *


class ScriptEventHandler(FileSystemEventHandler):
    def __init__(self):
        FileSystemEventHandler.__init__(self)

    # 文件移动
    def on_moved(self, event):
        if event.is_directory:
            print("directory moved from {0} to {1}".format(event.src_path, event.dest_path))
        else:
            print("file moved from {0} to {1}".format(event.src_path, event.dest_path))

    # 文件新建
    def on_created(self, event):
        if event.is_directory:
            print("directory created:{0}".format(event.src_path))
        else:
            self.reload_module(event.src_path)
            print("file created:{0}".format(event.src_path))

    # 文件删除
    def on_deleted(self, event):
        if event.is_directory:
            print("directory deleted:{0}".format(event.src_path))
        else:
            print("file deleted:{0}".format(event.src_path))

    # 文件修改
    def on_modified(self, event):
        if event.is_directory:
            print("directory modified:{0}".format(event.src_path))
        else:
            print("file modified:{0}".format(event.src_path))
            self.reload_module(event.src_path)

    # 重载模块
    def reload_module(self, module_name: str):
        module_name = module_name.replace('/', '.')
        module_name = module_name.replace('.py', '')
        instance = importlib.import_module(module_name)
        if instance:
            importlib.reload(instance)

observer = Observer()
event_handler = ScriptEventHandler()
# ./test为需要监控的目录
self.observer.schedule(event_handler,'./test', False)
self.observer.start()

Python代码模块热更新机制实现(reload)

对一个游戏来说,无论是client或server都非常需要一套代码热更新的机制。 它能大大提高开发效率,又能超乎玩家期望地在运营期在线修正bug和增添功能。 可谓必备机制。 --------...
  • yangli91628
  • yangli91628
  • 2016-07-05 19:58:31
  • 208

python-网络爬虫

  • 2018年02月20日 17:10
  • 9.41MB
  • 下载

watchdog的正确用法

关于watchdog应该有过单片机学习经历的人,都比较熟悉。但watchdog的正确用法,恐怕大家如果没有经历过实际产品的开发不会有深入的理解。 瑞萨RL78系列的单片机自身带有watchdog,当...
  • u012914709
  • u012914709
  • 2014-07-06 22:31:52
  • 2126

python-基础知识思维导图

  • 2017年10月19日 08:36
  • 1.74MB
  • 下载

windows下watchdog

  • 2013年09月11日 17:32
  • 385KB
  • 下载

linux watchdog介绍

1 Linux对Watchdog的支持 1.1 Linux下watchdog的工作原理 Watchdog在实现上可以是硬件电路也可以是软件定时器,能够在系统出现故障时自动重新启动系统。在Linux...
  • lk07828
  • lk07828
  • 2015-08-08 18:42:59
  • 613

Linux Watchdog 脚本

watchdog  -t  5  -T 20  /dev/watchdog0   -t   N   每N次reset一次watchdog。 -T  N   如果没有喂狗, N秒后reboot。...
  • YUAN1125
  • YUAN1125
  • 2015-06-09 10:08:17
  • 814

ipmi watchdog

IPMI watchdog 基本是定时和BMC 通信,如果BMC 在规定时间内回复了,则再次通信,否则BMC 那边的timer就会超时 从makefile中可以看到要使用IPMI watchdog ...
  • tiantao2012
  • tiantao2012
  • 2017-06-08 09:39:31
  • 962

Linux下Watchdog

周 婷 (moting9@gmail.com ), 软件工程师, IBM 中国系统技术实验室 2007 年 10 月 29 日 Linux 在不同领域如电信、终端便携设备等得到广泛应用,不同领...
  • dongfangyu
  • dongfangyu
  • 2014-04-17 09:24:22
  • 3301

Linux下的Watchdog驱动

版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127    对于看门狗驱动,在我们内核中把这些代码放在/driver/watchdog文件夹下面,但是wa...
  • weiqing1981127
  • weiqing1981127
  • 2013-01-10 09:08:24
  • 3032
收藏助手
不良信息举报
您举报文章:Python-使用watchdog热更新
举报原因:
原因补充:

(最多只允许输入30个字)