private void send(FeedEnum feedEnum, int numEvents) { for (int i = 0; i < numEvents; i++) { _epService.EPRuntime.SendEvent(new MarketDataEvent("CSC", feedEnum)); } }
public void Run() { Log.Info(".call Thread " + Thread.CurrentThread + " starting"); try { Array enumValues = Enum.GetValues(typeof(FeedEnum)); while (!_isShutdown) { int nextFeed = Math.Abs(_random.Next() % 2); FeedEnum feed = (FeedEnum)enumValues.GetValue(nextFeed); if (_rateDropOffFeed != feed) { _engine.EPRuntime.SendEvent(new MarketDataEvent("SYM", feed)); } } } catch (Exception ex) { Log.Error("Error in send loop", ex); } Log.Info(".call Thread " + Thread.CurrentThread + " done"); }
/// <summary> /// Grab the feed url based on the feed enum from configuration. /// </summary> /// <param name="feed">feed enum</param> /// <param name="log">logger instance</param> /// <returns>feed url</returns> public string GetFeedURL(FeedEnum feed, ILogger log) { string feedURL = Environment.GetEnvironmentVariable(feed.ToString()); log.LogInformation("Grabbed FeedURL: " + feedURL); return(feedURL); }
/// <summary> /// Calculate records to exclude for pagination. Get archived responses from data. /// </summary> /// <param name="pageSize">entries per page</param> /// <param name="pageNumber">current page</param> /// <param name="feed">feed selection</param> /// <param name="log">logger instance</param> /// <returns>paginated archived feed responses</returns> public List <FeedResponse> GetArchiveFeed(int pageSize, int pageNumber, FeedEnum feed, ILogger log) { int excludeRecords = (pageNumber * pageSize) - pageSize; List <FeedResponse> archivedResponses = _feedData.GetArchiveFeed(pageSize, excludeRecords, feed, log); return(archivedResponses); }
private void send(FeedEnum feedEnum, int numEvents) { var sender = _runtime.EventService.GetEventSender(typeof(MarketDataEvent).Name); for (var i = 0; i < numEvents; i++) { sender.SendEvent(new MarketDataEvent("CSC", feedEnum)); } }
/// <summary> /// Get the archived feed responses for given feed parameters. Pagination applied to query. /// </summary> /// <param name="pageSize">entries per page</param> /// <param name="excludeRecords">records to exclude from pagination</param> /// <param name="feed">feed to find</param> /// <param name="log">logger instance</param> /// <returns>archived feed responses</returns> public List <FeedResponse> GetArchiveFeed(int pageSize, int excludeRecords, FeedEnum feed, ILogger log) { List <FeedResponse> archivedFeedResponses = _cosmosContainer.GetItemLinqQueryable <FeedResponse>(true) .Where(fr => fr.Feed == feed) .Skip(excludeRecords) .Take(pageSize).ToList(); log.LogInformation("Grabbed {0} archived feeds.", archivedFeedResponses.Count); return(archivedFeedResponses); }
private void assertReceived(FeedEnum feedEnum, double average, long count) { Assert.IsTrue(_listener.IsInvoked); Assert.AreEqual(1, _listener.LastNewData.Length); EventBean eventBean = _listener.LastNewData[0]; Assert.AreEqual(feedEnum, eventBean["feed"]); Assert.AreEqual(average, eventBean["avgCnt"]); Assert.AreEqual(count, eventBean["feedCnt"]); _listener.Reset(); }
public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "POST", Route = nameof(Archive))] HttpRequest request, ILogger log) { try { log.LogInformation("Requesting Archived ESPN Feed!"); //Parse query string parameters, default paging size if not provided. FeedEnum feed = Enum.Parse <FeedEnum>(request.Query[nameof(feed)]); int pageNumber = request.Query.ContainsKey(nameof(pageNumber)) ? int.Parse(request.Query[nameof(pageNumber)]) : 1; int pageSize = request.Query.ContainsKey(nameof(pageSize)) ? int.Parse(request.Query[nameof(pageSize)]) : 10; if (feed == 0) { throw new ArgumentNullException(); } log.LogInformation("Grabbed query string from " + nameof(HttpRequest) + "."); List <FeedResponse> archivedResponses = _feedLogic.GetArchiveFeed(pageSize, pageNumber, feed, log); return(new OkObjectResult(archivedResponses)); } catch (ArgumentNullException argsNullEx) { log.LogError(argsNullEx, argsNullEx.Message); return(new BadRequestObjectResult("Please enter a valid Feed!")); } catch (CosmosException cosmosEx) { log.LogError(cosmosEx, cosmosEx.Message); return(new BadRequestObjectResult("Unable to get archived data: " + cosmosEx.Message)); } catch (JsonReaderException jsonReaderEx) { log.LogError(jsonReaderEx, jsonReaderEx.Message); return(new BadRequestObjectResult("Unable to read the malformed request!")); } catch (JsonSerializationException jsonSerializationEx) { log.LogError(jsonSerializationEx, jsonSerializationEx.Message); return(new BadRequestObjectResult("Unable to deserialize the request!")); } catch (Exception ex)//unhandled exception, return 400 with message instead of vague 500 server error. { log.LogError(ex, ex.Message); return(new BadRequestObjectResult("An unexpected error occured: " + ex.Message)); } }
public static List <FeedResponse> GetFeedResponses(FeedEnum feed, int num) { List <FeedResponse> responses = new List <FeedResponse>(); for (int i = 0; i < num; i++) { responses.Add(new FeedResponse() { Description = "desc" + i, Feed = feed, id = i.ToString(), Link = "http://" + i + ".com", Title = "title" + i }); } return(responses); }
public FeedEvent(FeedEnum feed, String symbol, double price) { this.feed = feed; this.symbol = symbol; this.price = price; }
public MarketDataEvent(String symbol, FeedEnum feed) { Symbol = symbol; Feed = feed; }