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"); } } }
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); }