static int Main(string[] args) { var rootCommand = new RootCommand ( "Sends HTTP `HEAD` requests to the specified URL." ) { Name = "./RequestsGalore", }; rootCommand.AddOption(UrlOption); rootCommand.AddOption(RequestsOption); rootCommand.AddOption(ConcurrencyLevelOption); rootCommand.Handler = CommandHandler.Create <string, int?, int?>((url, numberOfRequests, numberOfConcurrentRequestsPerRequest) => { // TODO: The following is a hack to make validation work as the // CommandLine API is not fully fleshed out yet. OptionValidation.ValidateOptions(url, numberOfRequests, numberOfConcurrentRequestsPerRequest); var urlRequestService = new UrlRequestService(Client); var urlController = new UrlController(urlRequestService); var urlRequestResponses = urlController.GetUrlRequestResponses(url, numberOfRequests.Value, numberOfConcurrentRequestsPerRequest.Value); for (int i = 0; i < urlRequestResponses.Count; i++) { var response = urlRequestResponses[i]; Console.WriteLine($"Request {i} -> [{response.StatusCode}]"); } }); return(rootCommand.InvokeAsync(args).Result); }
public MainViewModel() { ReportCollection = new ObservableCollection <UrlReportViewModel>(); mUrlReportBuilder = new UrlReportBuilder(); mUrlRequestService = new UrlRequestService(); mUrlParseService = new UrlParseService(); UrlFilePath = Constants.cUrlFilePath; }
/// <summary> /// Запрос на отмену операции обработки /// </summary> public async Task CancelRequest() { await Task.Run(() => { this.mCancellationTokenSource.Cancel(); this.mMaxReferenceCountSelectDelegateInvoker = null; this.mUrlRequestService = null; this.mUrlParseService = null; this.RequestWrapper = null; }); }
public UrlReportViewModel( UrlRequestService urlRequestService, UrlParseService urlParseService, MaxReferenceCountSelectDelegate maxReferenceCountSelectDelegate) { mMaxReferenceCountSelectDelegateInvoker = maxReferenceCountSelectDelegate; mUrlRequestService = urlRequestService; mUrlParseService = urlParseService; this.RequestWrapper = new WrapAsyncResult <int?>((source, completionSource) => { mCancellationTokenSource = source; }); }
/// <summary> /// Получение списка url /// </summary> /// <param name="urlFilePath"></param> /// <param name="urlRequestService"></param> /// <param name="urlParseService"></param> /// <param name="maxReferenceSelectDelegate"></param> /// <returns></returns> public async Task <IEnumerable <UrlReportViewModel> > GetUrlReportsAsync( string urlFilePath, UrlRequestService urlRequestService, UrlParseService urlParseService, MaxReferenceCountSelectDelegate maxReferenceSelectDelegate) { Func <Task <IEnumerable <string> > > getUrlsFunc = async() => await mUrlFileReadService.GetUrlsAsync(urlFilePath); IEnumerable <string> urls = await getUrlsFunc.WithTry(Enumerable.Empty <string>, (str) => MessageBox.Show(str, "Ошибка чтения файла", MessageBoxButton.OK, MessageBoxImage.Error)); return(urls.Select(x => new UrlReportViewModel(urlRequestService, urlParseService, maxReferenceSelectDelegate) { Url = x })); }
public void Execute(IJobExecutionContext context) { //var mapper = context.JobDetail.JobDataMap; //var url = mapper.GetString("pingUrl"); //var request = (HttpWebRequest)WebRequest.Create(url); //request.ContentLength = 0; //request.Headers.Add("Accept-Language", "en;q=0.8"); //request.ContentType = "text/html"; //request.Method = "GET"; //try //{ // var response = (HttpWebResponse)request.GetResponse(); // _log.Info("Ran Quartz UrlJob : " + url); //} //catch (WebException e) //{ // var response = (HttpWebResponse)e.Response; // _log.Error("Failed Quartz UrlJob : " + url + " Status :" + response.StatusCode, e); //} var requestService = new UrlRequestService(); var runningService = new UrlRunningService(requestService); var query = new Sql() .Select("*") .From("TD_ScheduleUrl") //.Where("LastRun < @0", DateTime.UtcNow.AddSeconds(-6.5)) //.Where("NextRun > @0", DateTime.UtcNow) //.Where("NextRun < @0", DateTime.UtcNow.AddMinutes(1)) .Where("Disabled = @0", false); var urls = ApplicationContext.Current.DatabaseContext.Database.Fetch <ScheduleUrl>(query); try { var response = runningService.GetAndRunUrls(urls); _log.Info("Ran TechDevils Job : " + response); } catch (Exception e) { _log.Error("Failed TechDevils Job", e); } }
public string RunTaskNow(int id) { //ToDo: Get run now task to update the last manual run and not to update the nex run time var sql = new Sql().Select("*").From <ScheduleUrl>().Where("id = " + id); var records = DatabaseContext.Database.Fetch <ScheduleUrl>(sql); var rs = new UrlRequestService(); var urlRunningService = new UrlRunningService(rs); try { urlRunningService.CallUrls(records); } catch (Exception e) { _log.Error("Error running 'Run Now' task", e); return("Failed to run please see log for more information"); } return(DateTime.UtcNow.ToString("dd/MM/yyyy hh:mm:ss.fff")); }