public Task <Job> SearchNews(CriteriaSearchNews criteria) { var client = new RestClient(_uri); var request = new RestRequest(_postSearchNews, Method.POST); request.AddHeader("Accept", "application/json"); request.Parameters.Clear(); request.AddParameter("application/json", JsonConvert.SerializeObject(criteria), ParameterType.RequestBody); var response = client.Execute(request); var content = response.Content; // raw content as string var job = JsonConvert.DeserializeObject <Job>(content); return(Task.FromResult <Job>(job)); }
public IActionResult AddQueue([FromBody] CriteriaSearchNews inputModel) { CriteriaSearchNews message = new CriteriaSearchNews { Target = inputModel.Target }; var jobId = BackgroundJob.Enqueue <ISearchNewsCommand>(x => x.SearchNewsBankOfThailand(message)); BackgroundJob.ContinueWith <ISearchNewsCommand>(jobId, x => x.AnalysisResult(message)); BackgroundJob.ContinueWith <ISearchNewsCommand>(jobId, x => x.ReportingResult(message)); var job = new Job() { Id = jobId, Application = "Batch", Procedure = "SearchNews", Status = "Created", Created = DateTime.Now }; return(Ok(job)); }
public void ReportingResult(CriteriaSearchNews criteriaSearchNews) { //Logger.Info("ReportingResult"); Task.Delay(TimeSpan.FromSeconds(2)).Wait(); }
public void AnalysisResult(CriteriaSearchNews criteriaSearchNews) { //Logger.Info("AnalysisResult"); Task.Delay(TimeSpan.FromSeconds(5)).Wait(); }
public void SearchNewsBankOfThailand(CriteriaSearchNews criteriaSearchNews) { //Logger.Info("SearchNewsBankOfThailand"); Task.Delay(TimeSpan.FromSeconds(10)).Wait(); }