コード例 #1
0
        static void Main(string[] args)
        {
            SQL.ConnectionString = ConfigurationManager.AppSettings["ConsoleConnectionString"].ToString(); //"Provider=PostgreSQL; Unicode=true; host=192.168.1.11; Database=webtalonXtula; user=asu; password=asu";
            var threadCount = Settings.Default.ThreadCount;

            var lpu = "2370b2cd-c7ec-432b-aed5-93e074ee45a9";

            var datetimebegin = DateTime.Now;

            MainActivityRer.UpdatePrescs(1, datetimebegin);
        }
コード例 #2
0
        /*
         * private void TimerElapsedUpdateLpuSettings(object sender, ElapsedEventArgs e)
         * {
         *  var timer = Timers[UpdatelEnum.UpdateLpuSettings];
         *  timer.Enabled = false;
         *  UpdateFedBase(UpdatelEnum.UpdateLpuSettings);
         *  if (!_isPause && _isConnected)
         *  {
         *      timer.Enabled = true;
         *      LogNextTime(Timers[UpdatelEnum.UpdateLpuSettings], UpdatelEnum.UpdateLpuSettings.ToString());
         *  }
         * }
         *
         * private void TimerElapsedUpdateAreas(object sender, ElapsedEventArgs e)
         * {
         *  var timer = Timers[UpdatelEnum.UpdateAreas];
         *  timer.Enabled = false;
         *  UpdateFedBase(UpdatelEnum.UpdateAreas);
         *  if (!_isPause && _isConnected)
         *  {
         *      timer.Enabled = true;
         *      LogNextTime(Timers[UpdatelEnum.UpdateAreas], UpdatelEnum.UpdateAreas.ToString());
         *  }
         * }
         *
         * private void TimerElapsedUpdateSchedule(object sender, ElapsedEventArgs e)
         * {
         *  var timer = Timers[UpdatelEnum.UpdateSchedule];
         *  timer.Enabled = false;
         *  UpdateFedBase(UpdatelEnum.UpdateSchedule);
         *  if (!_isPause && _isConnected)
         *  {
         *      timer.Enabled = true;
         *      LogNextTime(Timers[UpdatelEnum.UpdateSchedule], UpdatelEnum.UpdateSchedule.ToString());
         *  }
         * }
         *
         * private void TimerElapsedUpdatePeople(object sender, ElapsedEventArgs e)
         * {
         *  var timer = Timers[UpdatelEnum.UpdatePeople];
         *  timer.Enabled = false;
         *  UpdateFedBase(UpdatelEnum.UpdatePeople);
         *  if (!_isPause && _isConnected)
         *  {
         *      timer.Enabled = true;
         *      LogNextTime(Timers[UpdatelEnum.UpdatePeople], UpdatelEnum.UpdatePeople.ToString());
         *  }
         * }
         *
         * private void TimerElapsedUpdateArrival(object sender, ElapsedEventArgs e)
         * {
         *  var timer = Timers[UpdatelEnum.UpdateArrival];
         *  timer.Enabled = false;
         *  UpdateFedBase(UpdatelEnum.UpdateArrival);
         *  if (!_isPause && _isConnected)
         *  {
         *      timer.Enabled = true;
         *      LogNextTime(Timers[UpdatelEnum.UpdateArrival], UpdatelEnum.UpdateArrival.ToString());
         *  }
         * }
         *
         * private void TimerElapsedUpdateReferral(object sender, ElapsedEventArgs e)
         * {
         *  var timer = Timers[UpdatelEnum.UpdateReferral];
         *  timer.Enabled = false;
         *  UpdateFedBase(UpdatelEnum.UpdateReferral);
         *  if (!_isPause && _isConnected)
         *  {
         *      timer.Enabled = true;
         *      LogNextTime(Timers[UpdatelEnum.UpdateReferral], UpdatelEnum.UpdateReferral.ToString());
         *  }
         * }
         *
         * private void TimerElapsedUpdateCall(object sender, ElapsedEventArgs e)
         * {
         *  var timer = Timers[UpdatelEnum.UpdateCall];
         *  timer.Enabled = false;
         *  UpdateFedBase(UpdatelEnum.UpdateCall);
         *  if (!_isPause && _isConnected)
         *  {
         *      timer.Enabled = true;
         *      LogNextTime(Timers[UpdatelEnum.UpdateCall], UpdatelEnum.UpdateCall.ToString());
         *  }
         * }
         *
         * private void TimerElapsedCleanBuffers(object sender, ElapsedEventArgs e)
         * {
         *  var timer = Timers[UpdatelEnum.CleanBuffers];
         *  timer.Enabled = false;
         *  UpdateFedBase(UpdatelEnum.CleanBuffers);
         *  if (!_isPause && _isConnected)
         *  {
         *      timer.Enabled = true;
         *      LogNextTime(Timers[UpdatelEnum.CleanBuffers], UpdatelEnum.CleanBuffers.ToString());
         *  }
         * }
         *
         * private void TimerElapsedUpdateLpuNames(object sender, ElapsedEventArgs e)
         * {
         *  var timer = Timers[UpdatelEnum.UpdateLpuNames];
         *  timer.Enabled = false;
         *  UpdateFedBase(UpdatelEnum.UpdateLpuNames);
         *  if (!_isPause && _isConnected)
         *  {
         *      timer.Enabled = true;
         *      LogNextTime(Timers[UpdatelEnum.UpdateLpuNames], UpdatelEnum.UpdateLpuNames.ToString());
         *  }
         * }
         *
         * private void TimerElapsedRestoreConnect(object sender, ElapsedEventArgs e)
         * {
         *  CheckConnectFed();
         * }
         */
        private static void UpdateFedBase(UpdatelEnum aCode)
        {
            // ограничиваем размер очереди
            if (_threadCount >= 10)
            {
                Logger.Trace("CAST AWAY code: {1} (current count = {0})", _threadCount, aCode);
                return;
            }

            //кол ожидающих в очереди
            _threadCount++;
            Logger.Trace("Thread count = {0} ++ (code: {1})", _threadCount, aCode);

            // блокируем параллелльное вхождение
            lock (InstanceLockObjectFed)
            {
                bool res = false;
                try
                {
                    var timeBegin = DataRepository.GetCurrentTimestamp(); //запускаем все проливки в одно время

                    Logger.Trace("Service: {0}; datetime_on: {1}", aCode, timeBegin.ToString());
                    switch (aCode)
                    {
                    case UpdatelEnum.UpdatePrescs:
                        MainActivityRer.UpdatePrescs(Settings.Default.ThreadCount, timeBegin);
                        res = true;
                        break;

/*
 *                      case UpdatelEnum.UpdateLpuSettings:
 *                          //MainActivityRer.UpdateLpuSettings(Settings.Default.ThreadCount);
 *                          res = true;
 *                          break;
 *
 *                      case UpdatelEnum.UpdateAreas:
 *                          //MainActivityRer.UploadAreas(Settings.Default.ThreadCount);
 *                          res = true;
 *                          break;
 *
 *                      case UpdatelEnum.UpdateArrival:
 *                          //MainActivityRer.UploadArrival(true, Settings.Default.ThreadCount);
 *                          res = true;
 *                          break;
 *
 *                      case UpdatelEnum.UpdateCall:
 *                          //MainActivityRer.UploadCall(Settings.Default.ThreadCount);
 *                          res = true;
 *                          break;
 *
 *                      case UpdatelEnum.UpdatePeople:
 *                          //MainActivityRer.UploadPeople(true, Settings.Default.ThreadCount);
 *                          res = true;
 *                          break;
 *
 *                      case UpdatelEnum.UpdateReferral:
 *                          //MainActivityRer.UploadReferral(Settings.Default.ThreadCount);
 *                          res = true;
 *                          break;
 *
 *                      case UpdatelEnum.UpdateSchedule:
 *                          //MainActivityRer.UpdateDoctors(Settings.Default.ThreadCount, timeBegin);
 *                          //MainActivityRer.UploadSchedule(true, Settings.Default.ThreadCount, timeBegin);
 *                          //MainActivityRer.UploadPeople(true, Settings.Default.ThreadCount, timeBegin);
 *                          //MainActivityRer.UploadArrival(true, Settings.Default.ThreadCount, timeBegin);
 *                          res = true;
 *                          break;
 *
 *                      case UpdatelEnum.UpdateLpuNames:
 *                          //MainActivityRer.UpdateLpuNames();
 *                          res = true;
 *                          break;
 *
 *                      case UpdatelEnum.CleanBuffers:
 *                          //MainActivityRer.CleanBuffers();
 *                          res = true;
 *                          break;*/
                    }
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                    res = false;
                }
                finally
                {
                    _threadCount--;
                    Logger.Trace("Service: {0} - {1}.   Thread count = {2} --", aCode, res, _threadCount);

                    if (!res)
                    {
                        CheckConnectFed();
                    }
                }
            }
        }