From 885abbcad5acbfb37c9c175ce69369f0a37ad842 Mon Sep 17 00:00:00 2001 From: qiujoe Date: Tue, 19 Jan 2016 21:59:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了一些持久化BUG --- Quanter.Persistence/PersistenceActor.cs | 79 +++++++++++-------- .../Quanter.Persistence.Server.csproj | 4 +- Quanter.Persistence/packages.config | 2 +- Quanter.Trader.Messages/Constants.cs | 1 + Quanter.Trader.Messages/MarketMessages.cs | 4 + .../Quanter.Trader.Messages.csproj | 4 +- Quanter.Trader.Messages/TradeMessages.cs | 21 +++++ Quanter.Trader.Messages/packages.config | 2 +- 8 files changed, 77 insertions(+), 40 deletions(-) diff --git a/Quanter.Persistence/PersistenceActor.cs b/Quanter.Persistence/PersistenceActor.cs index ae068d5..ceacfda 100644 --- a/Quanter.Persistence/PersistenceActor.cs +++ b/Quanter.Persistence/PersistenceActor.cs @@ -31,41 +31,49 @@ public PersistenceActor() protected override void OnReceive(object message) { - PersistenceRequest pr = message as PersistenceRequest; - if(pr != null) - { - switch(pr.Type) + try { + PersistenceRequest pr = message as PersistenceRequest; + if (pr != null) { - case PersistenceType.INIT_DATABASE: - _createTables(); - break; - case PersistenceType.OPEN: - _log.Debug("初始化,并打开Session"); - _init(); - _openSession(); - break; - case PersistenceType.SAVE: - _save(pr.Body); - break; - case PersistenceType.LOAD: - //_load((int)pr.Body); - break; - case PersistenceType.UPDATE: - _update(pr.Body); - break; - case PersistenceType.LIST: - _list((String)pr.Body); - break; - case PersistenceType.FIND: - _find((String)pr.Body); - break; - case PersistenceType.CLOSE: - _log.Debug("关闭Session"); - // _closeSession(); - break; - default: - break; + switch (pr.Type) + { + case PersistenceType.INIT_DATABASE: + _createTables(); + break; + case PersistenceType.OPEN: + _log.Debug("初始化,并打开Session"); + _init(); + _openSession(); + break; + case PersistenceType.SAVE: + _save(pr.Body); + break; + case PersistenceType.LOAD: + //_load((int)pr.Body); + break; + case PersistenceType.DELETE: + _delete(pr.Body); + break; + case PersistenceType.UPDATE: + _update(pr.Body); + break; + case PersistenceType.LIST: + _list((String)pr.Body); + break; + case PersistenceType.FIND: + _find((String)pr.Body); + break; + case PersistenceType.CLOSE: + _log.Debug("关闭Session"); + // _closeSession(); + break; + default: + break; + } } + } catch (Exception e) + { + _log.Error("PersistenceActor.OnReceive 发生异常: {0}", e.StackTrace); } } @@ -103,8 +111,8 @@ private void _save(Object obj) _log.Debug("保存对象 {0}", obj.GetType().ToString()); try { session.Save(obj); + session.Flush(); Sender.Tell(obj); - } catch (Exception e) { _log.Error("保存发生异常 {0}", e.StackTrace); @@ -115,6 +123,8 @@ private void _update(Object obj) { _log.Debug("更新对象 {0}", obj.GetType().ToString()); session.Update(obj); + session.Flush(); + Sender.Tell(obj); } private void _delete(Type theType, int id) @@ -126,6 +136,7 @@ private void _delete(Type theType, int id) private void _delete(Object obj) { session.Delete(obj); + session.Flush(); } private void _load(Type theType, int id) diff --git a/Quanter.Persistence/Quanter.Persistence.Server.csproj b/Quanter.Persistence/Quanter.Persistence.Server.csproj index 5a90aca..859a488 100644 --- a/Quanter.Persistence/Quanter.Persistence.Server.csproj +++ b/Quanter.Persistence/Quanter.Persistence.Server.csproj @@ -32,8 +32,8 @@ 4 - - ..\packages\Akka.1.0.5\lib\net45\Akka.dll + + ..\..\quanter.private\packages\Akka.1.0.6\lib\net45\Akka.dll True diff --git a/Quanter.Persistence/packages.config b/Quanter.Persistence/packages.config index 35b5cef..a4850bf 100644 --- a/Quanter.Persistence/packages.config +++ b/Quanter.Persistence/packages.config @@ -1,6 +1,6 @@  - + diff --git a/Quanter.Trader.Messages/Constants.cs b/Quanter.Trader.Messages/Constants.cs index 3b93db5..77a1fb3 100644 --- a/Quanter.Trader.Messages/Constants.cs +++ b/Quanter.Trader.Messages/Constants.cs @@ -8,6 +8,7 @@ namespace Quanter.Trader.Messages { public class ConstantsHelper { + public static String AKKA_PATH_SERVER = "server"; public static String AKKA_PATH_STRATEGY_MANAGER = "strategy"; public static String AKKA_PATH_MARKET_MANAGER = "market"; public static String AKKA_PATH_PERSISTENCE = "persistence"; diff --git a/Quanter.Trader.Messages/MarketMessages.cs b/Quanter.Trader.Messages/MarketMessages.cs index 2d74241..6b117d4 100644 --- a/Quanter.Trader.Messages/MarketMessages.cs +++ b/Quanter.Trader.Messages/MarketMessages.cs @@ -23,13 +23,17 @@ public class MarketRequest { public enum RequestType { + INIT, START, STOP, + ADD_SECURITIES, ADD_STRATEGY, REMOVE_STARTEGY, } public RequestType Type { get; set; } + + public Object Body { get; set; } } public class StopMarketRequest diff --git a/Quanter.Trader.Messages/Quanter.Trader.Messages.csproj b/Quanter.Trader.Messages/Quanter.Trader.Messages.csproj index 8a619d4..bcde391 100644 --- a/Quanter.Trader.Messages/Quanter.Trader.Messages.csproj +++ b/Quanter.Trader.Messages/Quanter.Trader.Messages.csproj @@ -30,8 +30,8 @@ 4 - - ..\packages\Akka.1.0.5\lib\net45\Akka.dll + + ..\..\quanter.private\packages\Akka.1.0.6\lib\net45\Akka.dll True diff --git a/Quanter.Trader.Messages/TradeMessages.cs b/Quanter.Trader.Messages/TradeMessages.cs index 67dc555..53418b0 100644 --- a/Quanter.Trader.Messages/TradeMessages.cs +++ b/Quanter.Trader.Messages/TradeMessages.cs @@ -58,6 +58,15 @@ public class Order public class TradeRequest { + public enum RequestType + { + INIT, + BUY, + SELL, + } + + public RequestType Type { get; set; } + public OrderType OrderType { get; set; } public TradeInterface TradeInterface { get; set; } @@ -72,4 +81,16 @@ public class TradeResponse public int EntrustNo { get; set; } public String Message { get; set; } } + + public class TradeManagerRequest + { + public enum RequestType + { + INIT, + } + + public RequestType Type { get; set; } + public Object Body { get; set; } + } + } diff --git a/Quanter.Trader.Messages/packages.config b/Quanter.Trader.Messages/packages.config index 0934726..f4b0d4d 100644 --- a/Quanter.Trader.Messages/packages.config +++ b/Quanter.Trader.Messages/packages.config @@ -1,6 +1,6 @@  - +