def get_root_path(): """因为多个地方在引用, 只能配置成绝对目录 return: str path """ key = enum.ROOT_PATH root_path = myredis.get_obj(key) assert (os.path.isdir(root_path)) return root_path
def combin_cur_dir(sub_dir): """组合目录 当前执行文件的目录作为根目录, 支持多进程 sub_dir: 当前执行文件下的子目录, 前面不带/ return: 绝对路径 """ key = myredis.gen_keyname(__file__, combin_cur_dir) enter_file = sys.argv[0] root_dir = os.path.dirname(os.path.abspath(enter_file)) if root_dir.lower().find('multisubprocess') >= 0: root_dir = myredis.get_obj(key) else: myredis.set_obj(key, root_dir) return root_dir + '/' + sub_dir
def Reduce(self): """合并结果, 返回各任务的df return: list, 有几个Map list里就有几个元素""" df = self.pd_task #按task_id来排序 max_id = np.max(df[0]) result = [] for task_id in range(max_id + 1): df_result = pd.DataFrame([]) for i in df[df[0] == task_id].index: r = myredis.get_obj(getResultName(i)) assert (isinstance(r, pd.DataFrame) or r is None) df_result = pd.concat([df_result, r]) result.append(df_result) return result
def PostTask(fn, t, reset=False): """每隔t秒执行一次fn 主要是防止交易接口被短期内多次调用, 造成系统异常 fn : callback function t : 秒 reset: 重置时间, 立刻执行 """ key = 'posttask_' + fn.func_name cur_t = curTime() if reset: myredis.delkey(key) pre_t = myredis.get_obj(key) if pre_t == None: pre_t = cur_t - datetime.timedelta(seconds=t + 1) if cur_t - pre_t > datetime.timedelta(seconds=t): fn() myredis.set_obj(key, cur_t)
def run(): json_string = myredis.get_obj(enum.key) model = model_from_json(json_string) model.load_weights(enum.h5) (x_train, y_train), (x_test, y_test) = my_recognition.get_data() data_len = x_train.shape[-2] * x_train.shape[-1] x_train = x_train.reshape(x_train.shape[0], data_len) x_test = x_test.reshape(x_test.shape[0], data_len) x_train = x_train.astype('float32') x_test = x_test.astype('float32') x_train /= 255 x_test /= 255 x = x_test[-2:] model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy']) preds = model.predict(x) print(preds)
def get_root_path(): """因为多个地方在引用, 只能配置成绝对目录 return: str path """ key = enum.ROOT_PATH if enum.use_redis: root_path = myredis.get_obj(key) else: cur_path = agl.get_exec_file_path() key_path = "autoxd\\autoxd" pos = cur_path.find(key_path) if pos <= 0: key_path = "autoxd/autoxd" pos = cur_path.find(key_path) root_path = cur_path[:pos + len(key_path)] #cur_path = os.path.abspath(__file__) #cur_path = os.path.dirname(cur_path) #root_path = os.path.abspath(os.path.join(cur_path, '..')) assert (os.path.isdir(root_path)) return root_path
def main(args): #os.chdir(getMainDir()) if len(args) > 0: i = int(args[0]) else: i = 0 #print('arg=',i) pd_task = myredis.get_obj('multi') if 0: pd_task = pd.DataFrame #print pd_task.iloc[i] v = tuple(pd_task.iloc[i].tolist()[1:]) #去掉task_id #print(v) v += (i, ) #加上task_id fname = v[0] #print('fname=',fname) AddPath(fname) module_name = getImportName(fname) s = 'import %s\n' % (module_name) # 获取import模块名 #module.fn s += 'r=%s' % (module_name) s += '.%s(%s)' % (v[1:-1]) #print(s) if sys.version > '3': from autoxd.pinyin.myexec import myexec r = myexec(s) #_locals = locals() #r = exec(s, globals(), _locals) #r = _locals['r'] else: exec(s) #print(type(r)) #print('result=',r) #保存结果 try: myredis.set_obj(MultiSubProcess.getResultName(i), r) #print('save successful.', MultiSubProcess.getResultName(i)) except: print("MultiSubProcess result save failed.")
def get(): key = MyCode.g_code_name code = myredis.get_obj(key) if code is None: code = "000005" return code