示例#1
0
        object ReceiveMessage(int evt, MessageQueue.MessageFlag flag, object data)
        {
            if (evt == (int)SQLClient.ConnectEvent.ExcuteSql)
            {
                try
                {
                    _Args = data as MessageReceiveEventArgs;
                    CurrentConnection currentConnection = new CurrentConnection(
                        _Args.ConnectionInfo as ConnectionInformation);

                    CurrentConnection.ConnectionInfo.QueryThread = this;
                    _ManagedThreadId = this.ManagedThreadId;

                    if (!_Args.QueryStoreProcedure)
                    {
                        int queryQueueWaitingTimeout = Global.Setting.Config.QueryQueueWaitingTimeout;

                        if (queryQueueWaitingTimeout > 0)
                        {
                            TimeSpan timeSpan = DateTime.Now - _Args.StartTime;
                            if (timeSpan.TotalSeconds > queryQueueWaitingTimeout)
                            {
                                throw new Hubble.Core.Query.QueryException("Timeout during sql was waiting in Query Queue.");
                            }
                        }
                    }

                    HubbleTask.ExcuteSqlMessageProcess(_Args);

                    _Args = null;
                }
                catch (Exception e)
                {
                    _Args.ReturnMsg = e;
                    TcpServer.ReturnMessage(_Args);
                }
                finally
                {
                    _Pool.ExecuteFinished(this);
                    CurrentConnection.Disconnect();
                }
            }

            return(null);
        }
示例#2
0
        private object ProcessMessage(int evt, MessageQueue.MessageFlag flag, object data)
        {
            switch ((Event)evt)
            {
            case Event.Add:
                _PayloadEntities.Add((PayloadEntity)data);
                break;

            case Event.Collect:
                SaveToFile();
                break;

            case Event.Update:
                UpdateToFile((List <PayloadEntity>)data);
                break;
            }

            return(null);
        }