Beispiel #1
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            _logger.LogInformation("[receiver.analyst] starting receiver analysisQ...");

            while (!stoppingToken.IsCancellationRequested)
            {
                try
                {
                    var _read_line = (string)null;
                    if (PQueue.QAnalyst.TryDequeue(out _read_line) == false)
                    {
                        await Task.Delay(10);

                        continue;
                    }

                    var _request = JsonConvert.DeserializeObject <VmsRequest <dSelector> >(_read_line);
                    {
                        var _selector = _request.data;

                        using (var _ltctx = _contextFactory.CreateDbContext())
                        {
                            var _aresult = await StartAnalysis(_ltctx, _selector);

                            if (_aresult == true)
                            {
                                // next step
                                var _today_seqno = _winnerReader.GetThisWeekSequenceNo();
                                if (_selector.sequence_no == _today_seqno)
                                {
                                    await _pipe_client.AnalysisSelectAsync(_ltctx, _selector.sequence_no);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, "receiver.analyst");
                }
            }
        }
Beispiel #2
0
        public async Task <int> Analysis2SelectAsync(AppDbContext ltctx, int analysis_no)
        {
            var _no_select = 0;

            try
            {
                _no_select = await _pipe_client.AnalysisSelectAsync(ltctx, analysis_no);

                if (_no_select > 0)
                {
                    _logger.LogInformation($"[collector.selector] ({analysis_no}) push select => {_no_select} games");
                }
            }
            catch (Exception ex)
            {
                ltctx.Database.RollbackTransaction();

                _logger.LogError(ex, "collector.selector");
            }

            return(_no_select);
        }