v
This commit is contained in:
parent
adf1cc6ff2
commit
932143d2dd
@ -1,119 +1,166 @@
|
||||
@startuml
|
||||
database mongoDB as db
|
||||
participant runDataRecord as run
|
||||
participant runDataRecord as rundr
|
||||
participant Process as run
|
||||
participant MainEngine as me
|
||||
participant LogEngine as runle
|
||||
participant DataEngine as dt
|
||||
participant LogEngine as le
|
||||
participant DrEngine as dr
|
||||
participant Queue as drq
|
||||
participant Thread as drt
|
||||
participant eventEngine as ee
|
||||
participant Thread as eet
|
||||
participant EventProcessThread as eet
|
||||
participant Queue as eeq
|
||||
participant TimerThread as eetm
|
||||
participant ibGateway as gw
|
||||
|
||||
|
||||
activate run
|
||||
run->ee ** :create evnetEngine object
|
||||
activate ee
|
||||
ee->ee ++ : init()
|
||||
ee->eeq ** : Create Queue
|
||||
ee->eet ** : Create Child Thread
|
||||
return
|
||||
return object
|
||||
activate rundr
|
||||
loop
|
||||
rundr->rundr: 检查是否处于时间段
|
||||
rundr->rundr: 监控子进程是否存在
|
||||
rundr->run ** : create process
|
||||
activate run
|
||||
rundr->rundr: sleep(5)
|
||||
end loop
|
||||
deactivate rundr
|
||||
|
||||
run->runle ** : create runle
|
||||
|||
|
||||
|||
|
||||
run->me ** : new mainEngine(ee)
|
||||
activate me
|
||||
me->me ++ : init()
|
||||
me->ee ++ : ee.start()
|
||||
note right: 启动ee的子线程
|
||||
ee->eet ++ #red : thread.start()
|
||||
ee-->me--: return
|
||||
me->dt ** :创建DataEngine()
|
||||
activate dt
|
||||
dt->dt ++ : init()
|
||||
return
|
||||
return object
|
||||
me->le ** :创建LogEngine()
|
||||
activate le
|
||||
le->le ++ : init()
|
||||
return
|
||||
return
|
||||
me-->me--:return
|
||||
me-->run--:return object
|
||||
|||
|
||||
|||
|
||||
run->me: addGateway(ibGateway)
|
||||
activate me
|
||||
run->ee ** :create evnetEngine object
|
||||
activate ee
|
||||
ee->ee ++ : init()
|
||||
ee->eeq ** : Create Queue
|
||||
ee->eet ** : Create event process thread
|
||||
note right: 事件处理子线程
|
||||
ee->eetm ** : Create timer thread
|
||||
note right: 定时器子线程
|
||||
return
|
||||
return object
|
||||
|||
|
||||
|||
|
||||
run->me: addApp()
|
||||
run->me ** : new mainEngine(ee)
|
||||
activate me
|
||||
me->me ++ : init()
|
||||
me->ee ++ : ee.start()
|
||||
note right: 启动ee的子线程
|
||||
ee->eet ++ #red : thread.start()
|
||||
ee->eetm ++ #green : timer.start()
|
||||
ee-->me--: return
|
||||
me->dt ** :创建DataEngine()
|
||||
activate dt
|
||||
dt->dt ++ : init()
|
||||
return
|
||||
return object
|
||||
me->le ** :创建LogEngine()
|
||||
activate le
|
||||
le->le ++ : init()
|
||||
return
|
||||
return
|
||||
me-->me--:return
|
||||
me-->run--: object
|
||||
|||
|
||||
|||
|
||||
run->me: addGateway(ibGateway)
|
||||
activate me
|
||||
return
|
||||
|||
|
||||
|||
|
||||
run->ee: ee.regiser() 注册日志处理事件
|
||||
run->me: addApp()
|
||||
activate me
|
||||
return
|
||||
|||
|
||||
|||
|
||||
run->ee: ee.regiser() 注册日志处理事件
|
||||
activate ee
|
||||
return
|
||||
|||
|
||||
|||
|
||||
run->me++: me.Connect(IB)
|
||||
note right: 连接IB网关
|
||||
me->dr**: new DrEngine(me,ee)
|
||||
activate dr
|
||||
dr->dr++:init()
|
||||
dr->drq **:Create Queue
|
||||
dr->drt **:Create Thread
|
||||
activate drt #blue
|
||||
dr->dr:loadSetting()
|
||||
note right
|
||||
从配置文件中加载
|
||||
订阅设置到字典对象
|
||||
end note
|
||||
dr->ee++:register(TICK, handler)
|
||||
return
|
||||
dr-->dr -- : return
|
||||
'return object
|
||||
dr-->me--: object
|
||||
run<--me--:return
|
||||
run->me++: me.Connect(IB)
|
||||
note right: 连接IB网关
|
||||
me->dr**: new DrEngine(me,ee)
|
||||
activate dr
|
||||
dr->dr++:init()
|
||||
dr->drq **:Create Queue
|
||||
dr->drt **:Create Thread
|
||||
activate drt #blue
|
||||
dr->dr:loadSetting()
|
||||
note right
|
||||
从配置文件中加载
|
||||
订阅设置到字典对象
|
||||
end note
|
||||
dr->ee++:register(TICK, handler)
|
||||
return
|
||||
dr-->dr -- : return
|
||||
'return object
|
||||
dr-->me--: object
|
||||
run<--me--:return
|
||||
|
||||
|||
|
||||
|||
|
||||
eet->ee--: ee.run()
|
||||
activate ee #red
|
||||
loop
|
||||
ee->eeq:queue.get()
|
||||
gw->eeq ++: queue.put(tick/bar)
|
||||
return
|
||||
eeq-->ee: event
|
||||
ee->ee ++ : __process(event)
|
||||
ee->dr ++ #red :call procecssTickEvent()
|
||||
dr->dr ++ :OnTick()
|
||||
dr->drq ++: queue.put(tick)
|
||||
return
|
||||
return
|
||||
run->ee ++ : ee.register(EVENT_LOG, le.processLogEvent)
|
||||
return
|
||||
|
||||
dr->dr ++ :OnBar()
|
||||
dr->drq ++: queue.put(bar)
|
||||
return
|
||||
|||
|
||||
|||
|
||||
run->ee ++ : ee.register(EVENT_ERROR, le.processErrorEvent)
|
||||
return
|
||||
|
||||
|||
|
||||
|||
|
||||
loop
|
||||
run->run: sleep(1)
|
||||
end loop
|
||||
deactivate run
|
||||
|||
|
||||
|||
|
||||
gw->eeq ++: queue.put(tick/bar)
|
||||
return
|
||||
|||
|
||||
|||
|
||||
eetm->ee -- : ee.__runTimer()
|
||||
activate ee #green
|
||||
loop
|
||||
ee->eeq ++ : queue.put(定时器事件)
|
||||
return
|
||||
ee->ee : 休眠1秒
|
||||
end loop
|
||||
deactivate ee
|
||||
|||
|
||||
|||
|
||||
eet->ee--: ee.run()
|
||||
activate ee #red
|
||||
loop
|
||||
ee->eeq ++ :queue.get()
|
||||
return event
|
||||
ee->ee ++ : __process(event)
|
||||
ee->dr ++ #red :call procecssTickEvent()
|
||||
dr->dr ++ :OnTick()
|
||||
dr->drq ++: queue.put(tick)
|
||||
return
|
||||
return
|
||||
|
||||
dr->dr ++ :OnBar()
|
||||
dr->drq ++: queue.put(bar)
|
||||
return
|
||||
return
|
||||
return
|
||||
end loop
|
||||
deactivate ee
|
||||
return
|
||||
end loop
|
||||
deactivate ee
|
||||
|
||||
|
||||
drt->dr -- :run()
|
||||
activate dr #blue
|
||||
loop
|
||||
dr->drq ++ :queue.get()
|
||||
drq-->dr --:data
|
||||
dr->me:insertDB(data)
|
||||
end loop
|
||||
deactivate dr
|
||||
drt->dr -- :run()
|
||||
activate dr #blue
|
||||
loop
|
||||
dr->drq ++ :queue.get()
|
||||
drq-->dr --:data
|
||||
dr->me:insertDB(data)
|
||||
end loop
|
||||
deactivate dr
|
||||
|
||||
me->db: 写入mongoDB
|
||||
me->db: 写入mongoDB
|
||||
|
||||
@enduml
|
||||
|
Loading…
Reference in New Issue
Block a user