示例#1
0
        async Task <bool> WatchCallBack(WatchDataItem data)
        {
            try
            {
                // await 保证如果出现异常能在当前线程拦截
                //  避免造成触发队列  Complete
                switch (data.ActionType)
                {
                case WatchActionType.PreCall:
                    await _watcher.PreCall(data.PipeCode, data.PipeType, data.Para).ConfigureAwait(false);

                    break;

                case WatchActionType.Executed:
                    await _watcher.Executed(data.PipeCode, data.PipeType, data.Para, data.Result)
                    .ConfigureAwait(false);

                    break;

                case WatchActionType.Blocked:
                    await _watcher.Blocked(data.PipeCode, data.PipeType, data.Para, data.Result)
                    .ConfigureAwait(false);

                    break;
                }
            }
            catch
            {
            }

            return(true);
        }
示例#2
0
        public Task Watch(WatchDataItem data)
        {
            if (_publisher != null)
            {
                return(_publisher.Publish(_dataFlowKey, data));
            }

            _watchDataQueue.Post(data);
            return(Task.CompletedTask);
        }