Esempio n. 1
0
        public DistributorDescription GetDestination(UserTransaction transaction)
        {
            DistributorDescription ret = null;

            _lock.EnterReadLock();
            if (_model.Count > 0)
            {
                ret = _model.FirstOrDefault(x => x.Hash == transaction.DistributorHash);
            }
            _lock.ExitReadLock();
            return(ret);
        }
Esempio n. 2
0
        private DistributorDescription GetDestinationServer()
        {
            DistributorDescription ret = null;

            _lock.EnterReadLock();
            var list = _model.Where(x => x.IsAvailable);

            if (list.Any())
            {
                var ll = list.OrderBy((x) => x.Load);

                ret = ll.First();

                if (ret != null)
                {
                    ret.UpdateLoad(ret.Load + 1);
                }
            }
            _lock.ExitReadLock();
            return(ret);
        }