Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
4ef3e416
milvus
项目概览
BaiXuePrincess
/
milvus
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4ef3e416
编写于
10月 26, 2019
作者:
P
peng.xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor router plugins
上级
cd0a112f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
6 addition
and
36 deletion
+6
-36
shards/mishards/router/factory.py
shards/mishards/router/factory.py
+5
-35
shards/mishards/router/plugins/file_based_hash_ring_router.py
...ds/mishards/router/plugins/file_based_hash_ring_router.py
+1
-1
未找到文件。
shards/mishards/router/factory.py
浏览文件 @
4ef3e416
import
os
import
os
import
logging
import
logging
from
functools
import
partial
from
utils.plugins
import
BaseMixin
from
utils.pluginextension
import
MiPluginBase
as
PluginBase
logger
=
logging
.
getLogger
(
__name__
)
logger
=
logging
.
getLogger
(
__name__
)
here
=
os
.
path
.
abspath
(
os
.
path
.
dirname
(
__file__
))
get_path
=
partial
(
os
.
path
.
join
,
here
)
PLUGIN_PACKAGE_NAME
=
'mishards.router.plugins'
PLUGIN_PACKAGE_NAME
=
'mishards.router.plugins'
plugin_base
=
PluginBase
(
package
=
PLUGIN_PACKAGE_NAME
,
searchpath
=
[
get_path
(
'./plugins'
)])
class
RouterFactory
(
object
):
class
RouterFactory
(
BaseMixin
):
PLUGIN_TYPE
=
'Router'
PLUGIN_TYPE
=
'Router'
def
__init__
(
self
,
searchpath
=
None
):
def
__init__
(
self
,
searchpath
=
None
):
self
.
plugin_package_name
=
PLUGIN_PACKAGE_NAME
super
().
__init__
(
searchpath
=
searchpath
,
package_name
=
PLUGIN_PACKAGE_NAME
)
self
.
class_map
=
{}
searchpath
=
searchpath
if
searchpath
else
[]
searchpath
=
[
searchpath
]
if
isinstance
(
searchpath
,
str
)
else
searchpath
self
.
source
=
plugin_base
.
make_plugin_source
(
searchpath
=
searchpath
,
identifier
=
self
.
__class__
.
__name__
)
for
plugin_name
in
self
.
source
.
list_plugins
():
plugin
=
self
.
source
.
load_plugin
(
plugin_name
)
plugin
.
setup
(
self
)
def
on_plugin_setup
(
self
,
plugin_class
):
name
=
getattr
(
plugin_class
,
'name'
,
plugin_class
.
__name__
)
self
.
class_map
[
name
.
lower
()]
=
plugin_class
def
plugin
(
self
,
name
):
return
self
.
class_map
.
get
(
name
,
None
)
def
create
(
self
,
class_name
,
class_config
=
None
,
**
kwargs
):
if
not
class_name
:
raise
RuntimeError
(
'Please specify router class_name first!'
)
this_class
=
self
.
plugin
(
class_name
.
lower
())
if
not
this_class
:
raise
RuntimeError
(
'{} Plugin
\'
{}
\'
Not Installed!'
.
format
(
self
.
PLUGIN_TYPE
,
class_name
))
router
=
this_class
.
create
(
class_config
,
**
kwargs
)
def
_create
(
self
,
plugin_class
,
**
kwargs
):
router
=
plugin_class
.
create
(
**
kwargs
)
return
router
return
router
shards/mishards/router/plugins/file_based_hash_ring_router.py
浏览文件 @
4ef3e416
...
@@ -51,7 +51,7 @@ class Factory(RouterMixin):
...
@@ -51,7 +51,7 @@ class Factory(RouterMixin):
return
routing
return
routing
@
classmethod
@
classmethod
def
create
(
cls
,
config
,
**
kwargs
):
def
create
(
cls
,
**
kwargs
):
conn_mgr
=
kwargs
.
pop
(
'conn_mgr'
,
None
)
conn_mgr
=
kwargs
.
pop
(
'conn_mgr'
,
None
)
if
not
conn_mgr
:
if
not
conn_mgr
:
raise
RuntimeError
(
'Cannot find
\'
conn_mgr
\'
to initialize
\'
{}
\'
'
.
format
(
self
.
name
))
raise
RuntimeError
(
'Cannot find
\'
conn_mgr
\'
to initialize
\'
{}
\'
'
.
format
(
self
.
name
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录