From fa3e01dedc316eae54e9707e2e6ba8c2f922b34e Mon Sep 17 00:00:00 2001 From: zj3D Date: Sat, 23 Mar 2024 22:47:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E4=BF=AE=2012?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../数据共享/{ => 1 内存}/1 队列.py | 0 .../2 服务进程_不合并.py | 0 .../2 服务进程_分包.py | 0 .../ORM/DataQuery.py | 0 .../ORM/createDb.py | 0 .../ORM/processData.py | 0 .../{4 数据库 => 3 数据库}/tf.db | Bin .../{4 数据库 => 3 数据库}/数据库.py | 0 .../数据共享/4 网络/restful}/app.py | 0 .../数据共享/4 网络/restful}/client.py | 0 .../1 松耦合/1 观察者/1 观察者.py | 2 +- .../1 松耦合/1 观察者/3 注册回调.py | 1 + .../1 松耦合/1 观察者/4 订阅发布.py | 2 ++ .../2 消息链/1 只有消息接口.py | 1 + .../{2 调用链py => 2 调用链.py} | 6 ++-- .../1 松耦合/2 消息链/4 消息队列.py | 34 ++++++++---------- .../{5 插件 => 4 插件}/config.ini | 0 .../{5 插件 => 4 插件}/plugin.py | 0 .../plugins-src/buildingPyc.py | 0 .../{5 插件 => 4 插件}/plugins-src/f1.py | 0 .../{5 插件 => 4 插件}/plugins-src/f2.py | 0 .../{5 插件 => 4 插件}/plugins/f1.pyc | Bin .../{5 插件 => 4 插件}/plugins/f2.pyc | Bin .../{类属性 .py => 4 类属性 .py} | 0 .../函数调用复用.py} | 0 .../{享元.py => 1 复用/对象复用.py} | 0 .../1 软件不能挂掉.py | 0 .../2 时间停止在那一刻.py | 0 .../3 所有错误的应对.py | 0 16 其它/{状态机 => 3 状态机}/81A.py | 0 30 files changed, 23 insertions(+), 23 deletions(-) rename 13 多计算单元/数据共享/{ => 1 内存}/1 队列.py (100%) rename 13 多计算单元/数据共享/{ => 2 本地服务}/2 服务进程_不合并.py (100%) rename 13 多计算单元/数据共享/{ => 2 本地服务}/2 服务进程_分包.py (100%) rename 13 多计算单元/数据共享/{4 数据库 => 3 数据库}/ORM/DataQuery.py (100%) rename 13 多计算单元/数据共享/{4 数据库 => 3 数据库}/ORM/createDb.py (100%) rename 13 多计算单元/数据共享/{4 数据库 => 3 数据库}/ORM/processData.py (100%) rename 13 多计算单元/数据共享/{4 数据库 => 3 数据库}/tf.db (100%) rename 13 多计算单元/数据共享/{4 数据库 => 3 数据库}/数据库.py (100%) rename {15 工程化/1 松耦合/4 restful => 13 多计算单元/数据共享/4 网络/restful}/app.py (100%) rename {15 工程化/1 松耦合/4 restful => 13 多计算单元/数据共享/4 网络/restful}/client.py (100%) rename 15 工程化/1 松耦合/2 消息链/{2 调用链py => 2 调用链.py} (78%) rename 15 工程化/1 松耦合/{5 插件 => 4 插件}/config.ini (100%) rename 15 工程化/1 松耦合/{5 插件 => 4 插件}/plugin.py (100%) rename 15 工程化/1 松耦合/{5 插件 => 4 插件}/plugins-src/buildingPyc.py (100%) rename 15 工程化/1 松耦合/{5 插件 => 4 插件}/plugins-src/f1.py (100%) rename 15 工程化/1 松耦合/{5 插件 => 4 插件}/plugins-src/f2.py (100%) rename 15 工程化/1 松耦合/{5 插件 => 4 插件}/plugins/f1.pyc (100%) rename 15 工程化/1 松耦合/{5 插件 => 4 插件}/plugins/f2.pyc (100%) rename 15 工程化/{类属性 .py => 4 类属性 .py} (100%) rename 16 其它/{函数缓存.py => 1 复用/函数调用复用.py} (100%) rename 16 其它/{享元.py => 1 复用/对象复用.py} (100%) rename 16 其它/{异常 => 2 异常}/1 软件不能挂掉.py (100%) rename 16 其它/{异常 => 2 异常}/2 时间停止在那一刻.py (100%) rename 16 其它/{异常 => 2 异常}/3 所有错误的应对.py (100%) rename 16 其它/{状态机 => 3 状态机}/81A.py (100%) diff --git a/13 多计算单元/数据共享/1 队列.py b/13 多计算单元/数据共享/1 内存/1 队列.py similarity index 100% rename from 13 多计算单元/数据共享/1 队列.py rename to 13 多计算单元/数据共享/1 内存/1 队列.py diff --git a/13 多计算单元/数据共享/2 服务进程_不合并.py b/13 多计算单元/数据共享/2 本地服务/2 服务进程_不合并.py similarity index 100% rename from 13 多计算单元/数据共享/2 服务进程_不合并.py rename to 13 多计算单元/数据共享/2 本地服务/2 服务进程_不合并.py diff --git a/13 多计算单元/数据共享/2 服务进程_分包.py b/13 多计算单元/数据共享/2 本地服务/2 服务进程_分包.py similarity index 100% rename from 13 多计算单元/数据共享/2 服务进程_分包.py rename to 13 多计算单元/数据共享/2 本地服务/2 服务进程_分包.py diff --git a/13 多计算单元/数据共享/4 数据库/ORM/DataQuery.py b/13 多计算单元/数据共享/3 数据库/ORM/DataQuery.py similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/ORM/DataQuery.py rename to 13 多计算单元/数据共享/3 数据库/ORM/DataQuery.py diff --git a/13 多计算单元/数据共享/4 数据库/ORM/createDb.py b/13 多计算单元/数据共享/3 数据库/ORM/createDb.py similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/ORM/createDb.py rename to 13 多计算单元/数据共享/3 数据库/ORM/createDb.py diff --git a/13 多计算单元/数据共享/4 数据库/ORM/processData.py b/13 多计算单元/数据共享/3 数据库/ORM/processData.py similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/ORM/processData.py rename to 13 多计算单元/数据共享/3 数据库/ORM/processData.py diff --git a/13 多计算单元/数据共享/4 数据库/tf.db b/13 多计算单元/数据共享/3 数据库/tf.db similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/tf.db rename to 13 多计算单元/数据共享/3 数据库/tf.db diff --git a/13 多计算单元/数据共享/4 数据库/数据库.py b/13 多计算单元/数据共享/3 数据库/数据库.py similarity index 100% rename from 13 多计算单元/数据共享/4 数据库/数据库.py rename to 13 多计算单元/数据共享/3 数据库/数据库.py diff --git a/15 工程化/1 松耦合/4 restful/app.py b/13 多计算单元/数据共享/4 网络/restful/app.py similarity index 100% rename from 15 工程化/1 松耦合/4 restful/app.py rename to 13 多计算单元/数据共享/4 网络/restful/app.py diff --git a/15 工程化/1 松耦合/4 restful/client.py b/13 多计算单元/数据共享/4 网络/restful/client.py similarity index 100% rename from 15 工程化/1 松耦合/4 restful/client.py rename to 13 多计算单元/数据共享/4 网络/restful/client.py diff --git a/15 工程化/1 松耦合/1 观察者/1 观察者.py b/15 工程化/1 松耦合/1 观察者/1 观察者.py index c360af9..b343db3 100644 --- a/15 工程化/1 松耦合/1 观察者/1 观察者.py +++ b/15 工程化/1 松耦合/1 观察者/1 观察者.py @@ -53,7 +53,7 @@ def main(testfilepath, top_n = 10 ): wordlist = re_split( read_file(testfilepath) ) for word in wordlist: if word not in stopwords: - subject.notify(word) # 触发 + subject.notify(word) # 通知 # 打印最高的N个词频 top_words = observer.word_count.most_common(top_n) diff --git a/15 工程化/1 松耦合/1 观察者/3 注册回调.py b/15 工程化/1 松耦合/1 观察者/3 注册回调.py index b5854cf..00d723d 100644 --- a/15 工程化/1 松耦合/1 观察者/3 注册回调.py +++ b/15 工程化/1 松耦合/1 观察者/3 注册回调.py @@ -1,3 +1,4 @@ +################ 待整理 ''' 注册者 = 观察者 diff --git a/15 工程化/1 松耦合/1 观察者/4 订阅发布.py b/15 工程化/1 松耦合/1 观察者/4 订阅发布.py index 5e6da70..d2bed7f 100644 --- a/15 工程化/1 松耦合/1 观察者/4 订阅发布.py +++ b/15 工程化/1 松耦合/1 观察者/4 订阅发布.py @@ -1,3 +1,5 @@ +################ 待整理 + from cppy.cp_util import * ''' 订阅者 = 注册者 = 观察者 diff --git a/15 工程化/1 松耦合/2 消息链/1 只有消息接口.py b/15 工程化/1 松耦合/2 消息链/1 只有消息接口.py index a020795..7f609c2 100644 --- a/15 工程化/1 松耦合/2 消息链/1 只有消息接口.py +++ b/15 工程化/1 松耦合/2 消息链/1 只有消息接口.py @@ -1,3 +1,4 @@ +################ 待整理 ''' 应用场景针对各个组件的 notify 方法发指令来驱动所有工作 这是一个示例性质的原型,具体分布式环境下需要调整 diff --git a/15 工程化/1 松耦合/2 消息链/2 调用链py b/15 工程化/1 松耦合/2 消息链/2 调用链.py similarity index 78% rename from 15 工程化/1 松耦合/2 消息链/2 调用链py rename to 15 工程化/1 松耦合/2 消息链/2 调用链.py index 8190bc6..75946f3 100644 --- a/15 工程化/1 松耦合/2 消息链/2 调用链py +++ b/15 工程化/1 松耦合/2 消息链/2 调用链.py @@ -3,8 +3,8 @@ from cppy.cp_util import * # 这个例子没有实际意义,是用来帮助理解其他例子 # 主程序只需要启动第一个动作,后面的顺序逻辑写到各个函数里面了 -def readfile(path_to_file, func): - data = read_file(path_to_file) +def readfile(file_path, func): + data = read_file(file_path) func(data, frequencies) def extractwords(str_data,func): @@ -17,7 +17,7 @@ def frequencies(word_list, func): def sort(wf, func): func(sort_dict(wf), None) -def printall(word_freqs, func): +def printall(word_freqs, _ ): print_word_freqs(word_freqs) if __name__ == "__main__": diff --git a/15 工程化/1 松耦合/2 消息链/4 消息队列.py b/15 工程化/1 松耦合/2 消息链/4 消息队列.py index 13719fd..84e8c47 100644 --- a/15 工程化/1 松耦合/2 消息链/4 消息队列.py +++ b/15 工程化/1 松耦合/2 消息链/4 消息队列.py @@ -1,3 +1,4 @@ +################ 待整理 ''' 多线程各个模块比较乱的但是协作序贯的完成了数据处理 各个组件完全不能互操作,仅依靠队列发消息进行协作 @@ -10,15 +11,15 @@ from threading import Thread from queue import Queue from cppy.cp_util import * -class ActiveWFObject(Thread): +class ThreadObject(Thread): def __init__(self): super().__init__() self.queue = Queue() - self._stopMe = False + self._over = False self.start() def run(self): - while not self._stopMe: + while not self._over: message = self.queue.get() self._dispatch(message) if message[0] == 'over': @@ -27,8 +28,7 @@ class ActiveWFObject(Thread): def send(receiver, message): receiver.queue.put(message) -class DataStorageManager(ActiveWFObject): - """ Models the contents of the file """ +class TxtManager(ThreadObject): _data = '' def _dispatch(self, message): @@ -36,8 +36,7 @@ class DataStorageManager(ActiveWFObject): self._init(message[1:]) elif message[0] == 'send_word_freqs': self._process_words(message[1:]) - else: - # forward + else: send(self._stop_word_manager, message) def _init(self, message): @@ -50,8 +49,8 @@ class DataStorageManager(ActiveWFObject): send(self._stop_word_manager, ['filter', w]) send(self._stop_word_manager, ['topWord', recipient]) -class StopWordManager(ActiveWFObject): - """ Models the stop word filter """ + +class FilterManager(ThreadObject): _stop_words = [] def _dispatch(self, message): @@ -59,8 +58,7 @@ class StopWordManager(ActiveWFObject): self._init(message[1:]) elif message[0] == 'filter': return self._filter(message[1:]) - else: - # forward + else: send(self._word_freqs_manager, message) def _init(self, message): @@ -72,8 +70,7 @@ class StopWordManager(ActiveWFObject): if word not in self._stop_words: send(self._word_freqs_manager, ['word', word]) -class WordFrequencyManager(ActiveWFObject): - """ Keeps the word frequency data """ +class WFManager(ThreadObject): _word_freqs = {} def _dispatch(self, message): @@ -91,8 +88,7 @@ class WordFrequencyManager(ActiveWFObject): freqs_sorted = sort_dict ( self._word_freqs ) send(recipient, ['topWord', freqs_sorted]) -class MyController(ActiveWFObject): - +class MyController(ThreadObject): def _dispatch(self, message): if message[0] == 'run': self._run(message[1:]) @@ -109,13 +105,13 @@ class MyController(ActiveWFObject): word_freqs, = message print_word_freqs( word_freqs) send(self._storage_manager, ['over']) - self._stopMe = True + self._over = True if __name__ == '__main__': - word_freq_manager = WordFrequencyManager() - stop_word_manager = StopWordManager() - storage_manager = DataStorageManager() + word_freq_manager = WFManager() + stop_word_manager = FilterManager() + storage_manager = TxtManager() wfcontroller = MyController() send(storage_manager, ['init', testfilepath, stop_word_manager]) diff --git a/15 工程化/1 松耦合/5 插件/config.ini b/15 工程化/1 松耦合/4 插件/config.ini similarity index 100% rename from 15 工程化/1 松耦合/5 插件/config.ini rename to 15 工程化/1 松耦合/4 插件/config.ini diff --git a/15 工程化/1 松耦合/5 插件/plugin.py b/15 工程化/1 松耦合/4 插件/plugin.py similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugin.py rename to 15 工程化/1 松耦合/4 插件/plugin.py diff --git a/15 工程化/1 松耦合/5 插件/plugins-src/buildingPyc.py b/15 工程化/1 松耦合/4 插件/plugins-src/buildingPyc.py similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins-src/buildingPyc.py rename to 15 工程化/1 松耦合/4 插件/plugins-src/buildingPyc.py diff --git a/15 工程化/1 松耦合/5 插件/plugins-src/f1.py b/15 工程化/1 松耦合/4 插件/plugins-src/f1.py similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins-src/f1.py rename to 15 工程化/1 松耦合/4 插件/plugins-src/f1.py diff --git a/15 工程化/1 松耦合/5 插件/plugins-src/f2.py b/15 工程化/1 松耦合/4 插件/plugins-src/f2.py similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins-src/f2.py rename to 15 工程化/1 松耦合/4 插件/plugins-src/f2.py diff --git a/15 工程化/1 松耦合/5 插件/plugins/f1.pyc b/15 工程化/1 松耦合/4 插件/plugins/f1.pyc similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins/f1.pyc rename to 15 工程化/1 松耦合/4 插件/plugins/f1.pyc diff --git a/15 工程化/1 松耦合/5 插件/plugins/f2.pyc b/15 工程化/1 松耦合/4 插件/plugins/f2.pyc similarity index 100% rename from 15 工程化/1 松耦合/5 插件/plugins/f2.pyc rename to 15 工程化/1 松耦合/4 插件/plugins/f2.pyc diff --git a/15 工程化/类属性 .py b/15 工程化/4 类属性 .py similarity index 100% rename from 15 工程化/类属性 .py rename to 15 工程化/4 类属性 .py diff --git a/16 其它/函数缓存.py b/16 其它/1 复用/函数调用复用.py similarity index 100% rename from 16 其它/函数缓存.py rename to 16 其它/1 复用/函数调用复用.py diff --git a/16 其它/享元.py b/16 其它/1 复用/对象复用.py similarity index 100% rename from 16 其它/享元.py rename to 16 其它/1 复用/对象复用.py diff --git a/16 其它/异常/1 软件不能挂掉.py b/16 其它/2 异常/1 软件不能挂掉.py similarity index 100% rename from 16 其它/异常/1 软件不能挂掉.py rename to 16 其它/2 异常/1 软件不能挂掉.py diff --git a/16 其它/异常/2 时间停止在那一刻.py b/16 其它/2 异常/2 时间停止在那一刻.py similarity index 100% rename from 16 其它/异常/2 时间停止在那一刻.py rename to 16 其它/2 异常/2 时间停止在那一刻.py diff --git a/16 其它/异常/3 所有错误的应对.py b/16 其它/2 异常/3 所有错误的应对.py similarity index 100% rename from 16 其它/异常/3 所有错误的应对.py rename to 16 其它/2 异常/3 所有错误的应对.py diff --git a/16 其它/状态机/81A.py b/16 其它/3 状态机/81A.py similarity index 100% rename from 16 其它/状态机/81A.py rename to 16 其它/3 状态机/81A.py