void runOneLocal() { LogC.info("running run " + start + " local to populate S3 cache"); S3Cache.saveAllQueryResultsToS3(true); var s3Cache = runner.s3Cache(); s3Cache.createBucket(); S3Cache.setS3Cache(s3Cache); var runParameters = parameters(start); var symbolRanges = dictionary(symbols, symbol => MsivBacktestTable.BACKTEST.range(systemId, symbol.name)); var data = new SystemDbBarLoader(details.interval(), symbols, symbolRanges); var simulator = new Simulator.Simulator(new SystemArguments(symbols, portfolios, runParameters), data, "QUEDGE"); simulator.processBars(); simulator.shutdown(); S3Cache.saveAllQueryResultsToS3(false); }
static int processNextMessage(EC2Runner runner, int lastRunTime, out STORequest request) { var message = runner.nextMessage(Math.Min(7200, 2 * lastRunTime)); var start = now(); request = new STORequest(message.@object()); info("received " + request); if (symbols == null || barData == null) { cacheSymbolData(request); } else { request.requireMatch(symbols); } var simulator = new Simulator.Simulator(new SystemArguments(symbols, request.portfolios, request.parameters), barData, "QUEDGE"); simulator.processBars(); simulator.shutdown(); lastRunTime = Math.Max((int)now().Subtract(start).TotalSeconds, 10); runner.responseQueue().send(request.response(EC2Runner.instanceId(), start, now(), processId())); message.delete(); return(lastRunTime); }