private void ReceiveTradeValuationResult(HandlerResponse pvRes) { var requestId = new Guid(pvRes.RequestId); // ignore requests if we are not running if (GetState() != BasicServerState.Running) { return; } _outstandingRequests.Locked(requests => { InternalTradeRevalRequest request; if (requests.TryGetValue(requestId, out request)) { // exists request.LatestResult = pvRes; } else { // not found request = new InternalTradeRevalRequest(requestId, pvRes); requests[requestId] = request; } }); // dispatch worker request _workerEventQueue.Dispatch(null); }
protected override void OnFirstCallback() { _ManagerResponseCache = _IntClient.Target.CreateCache(); _ManagerResponseCache.Subscribe <ManagerResponse>(Expr.ALL, (subs, item) => { _EventQueue.Dispatch(null); }, null); _CancellationsCache = _IntClient.Target.CreateCache(); _CancellationsCache.Subscribe <CancellationRequest>(Expr.ALL, (subs, item) => { _EventQueue.Dispatch(null); }, null); _UnassignedRequestsCache = _IntClient.Target.CreateCache(); _UnassignedRequestsCache.Subscribe <UnassignedWorkflowRequest>(Expr.ALL, (subs, item) => { _EventQueue.Dispatch(null); }, null); _WorkerAvailabilityCache = _IntClient.Target.CreateCache(); _WorkerAvailabilityCache.Subscribe <WorkerAvailability>(Expr.ALL, (subs, item) => { _EventQueue.Dispatch(null); }, null); _HousekeepTimer = new Timer(HousekeepTimeout, null, HousekeepInterval, HousekeepInterval); _EventQueue.Dispatch(null); }
protected override void OnFirstCallback() { _WorkerResponseCache = _IntClient.Target.CreateCache(); _WorkerResponseCache.Subscribe <WorkerResponse>( Expr.BoolAND( Expr.IsEQU(RequestBase.Prop.WorkerHostComputer, Environment.MachineName), (HostInstance == null) ? Expr.IsNull(RequestBase.Prop.WorkerHostInstance) : Expr.IsEQU(RequestBase.Prop.WorkerHostInstance, HostInstance)), (subs, item) => { _EventQueue.Dispatch(null); }, null); _CancellationsCache = _IntClient.Target.CreateCache(); _CancellationsCache.Subscribe <CancellationRequest>(Expr.ALL, (subs, item) => { _EventQueue.Dispatch(null); }, null); _AssignedRequestsCache = _IntClient.Target.CreateCache(); _AssignedRequestsCache.Subscribe <AssignedWorkflowRequest>( Expr.BoolAND( Expr.IsEQU(RequestBase.Prop.WorkerHostComputer, Environment.MachineName), (HostInstance == null) ? Expr.IsNull(RequestBase.Prop.WorkerHostInstance) : Expr.IsEQU(RequestBase.Prop.WorkerHostInstance, HostInstance)), (subs, item) => { _EventQueue.Dispatch(null); }, null); _HousekeepTimer = new Timer(HousekeepTimeout, null, HousekeepInterval, HousekeepInterval); _EventQueue.Dispatch(null); }