Add OPTIMIZEDB task and add to CRON
This commit is contained in:
@@ -53,6 +53,7 @@ namespace MarketData.Services
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,@"MGGAINLOSS /SESSIONFILE:{PATHSESSIONFILE} (i.e.) MGGAINLOSS /SESSIONFILE:C:\boneyard\marketdata\bin\Debug\saferun\MG20180131.txt");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,"RUNBACKTEST /STARTDATE: /MAXPOSITIONS: /INITIALCASH: /HOLDINGPERIOD: /{ENDDATE}: /{SESSIONFILE}:");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,"CALCBETAS recalculates beta36, beta24, and bet06 for Fundamentals");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,"OPTIMIZEDB optimizes the database tables");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,"ECHO {param1} {param2} {param(n)");
|
||||
}
|
||||
|
||||
@@ -95,6 +96,7 @@ namespace MarketData.Services
|
||||
tasks.Add("MGGAINLOSS",TaskMGRunMGGainLoss);
|
||||
tasks.Add("RUNBACKTEST",TaskMGRunMGBacktest);
|
||||
tasks.Add("CALCBETAS",TaskCalcBetas);
|
||||
tasks.Add("OPTIMIZEDB",TaskOptimizeDatabase);
|
||||
tasks.Add("ECHO",TaskEcho);
|
||||
GlobalConfig.Instance.Configuration = configuration; // This call sets up configuration stuff so it needs to be first.
|
||||
|
||||
@@ -224,7 +226,7 @@ namespace MarketData.Services
|
||||
|
||||
public async Task TaskUpdateSECFilingsWatchList(CommandArgs commandArgs)
|
||||
{
|
||||
if(!commandArgs.Has("WATCHLIST")){Console.WriteLine("UPDATESECFILINGSWATCHLIST REQUIRES WATCHLIST");return;}
|
||||
if(!commandArgs.Has("WATCHLIST")){MDTrace.WriteLine(LogLevel.DEBUG,"UPDATESECFILINGSWATCHLIST REQUIRES WATCHLIST");return;}
|
||||
String watchListName = commandArgs.Coalesce<String>("WATCHLIST");
|
||||
List<String> symbols = WatchListDA.GetWatchList(watchListName);
|
||||
SECFilingMarketDataHelper secFilingMarketDataHelper=new SECFilingMarketDataHelper();
|
||||
@@ -234,7 +236,7 @@ namespace MarketData.Services
|
||||
|
||||
public async Task TaskLoadHeadlinesWatchList(CommandArgs commandArgs)
|
||||
{
|
||||
if(!commandArgs.Has("WATCHLIST")){Console.WriteLine("LOADHEADLINESWATCHLIST REQUIRES WATCHLIST");return;}
|
||||
if(!commandArgs.Has("WATCHLIST")){MDTrace.WriteLine(LogLevel.DEBUG,"LOADHEADLINESWATCHLIST REQUIRES WATCHLIST");return;}
|
||||
else LoadHeadlinesWatchList(commandArgs.Coalesce<String>("WATCHLIST"));
|
||||
await Task.FromResult(true);
|
||||
}
|
||||
@@ -247,7 +249,7 @@ namespace MarketData.Services
|
||||
|
||||
public async Task TaskUpdateDaily2(CommandArgs commandArgs)
|
||||
{
|
||||
if(!commandArgs.Has("DATE")){Console.WriteLine("UPDATEDAILY2 MISSING DATE");return;}
|
||||
if(!commandArgs.Has("DATE")){MDTrace.WriteLine(LogLevel.DEBUG,"UPDATEDAILY2 MISSING DATE");return;}
|
||||
UpdateDaily2(commandArgs.Coalesce<DateTime>("DATE"));
|
||||
await Task.FromResult(true);
|
||||
}
|
||||
@@ -260,7 +262,7 @@ namespace MarketData.Services
|
||||
|
||||
public async Task TaskUpdateLatestPriceWatchList(CommandArgs commandArgs)
|
||||
{
|
||||
if(!commandArgs.Has("WATCHLIST")){Console.WriteLine("UPDATELATESTPRICEWATCHLIST MISSING WATCHLIST");return;}
|
||||
if(!commandArgs.Has("WATCHLIST")){MDTrace.WriteLine(LogLevel.DEBUG,"UPDATELATESTPRICEWATCHLIST MISSING WATCHLIST");return;}
|
||||
UpdateLatestPriceWatchList(commandArgs.Coalesce<String>("WATCHLIST"));
|
||||
await Task.FromResult(true);
|
||||
}
|
||||
@@ -336,9 +338,32 @@ namespace MarketData.Services
|
||||
FundamentalDA.UpdateBeta(symbol, date, betaCalc36, betaCalc24, betaCalc06);
|
||||
}
|
||||
}
|
||||
MDTrace.WriteLine($"Total took {profiler.End()} (ms)");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,$"Total took {profiler.End()} (ms)");
|
||||
await Task.FromResult(true);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Performs optimization on the database tables. Since we don't want to run this if any of the monthly updates is running we will check for those tasks and wait for them
|
||||
/// to complete (if running).
|
||||
/// </summary>
|
||||
/// <param name="commandArgs"></param>
|
||||
/// <returns></returns>
|
||||
public async Task TaskOptimizeDatabase(CommandArgs commandArgs)
|
||||
{
|
||||
int WAIT_TIME_INTERVAL = 120000; // 2 minute intervals between checks.
|
||||
Profiler profiler = new Profiler();
|
||||
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, $"Starting...");
|
||||
List<String> monthlyUpdateProcessList = new List<String> { "UPDATEFINANCIALSTATEMENTS", "UPDATEFUNDAMENTALS", "UPDATEHISTORICAL", "CALCSTICKER" };
|
||||
while (Utility.IsProcessRunning("mk", monthlyUpdateProcessList))
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, $"OPTIMIZEDB is waiting for items in the process completion list {Utility.ListToString(monthlyUpdateProcessList)}");
|
||||
try { Thread.Sleep(WAIT_TIME_INTERVAL); } catch (Exception) {; }
|
||||
}
|
||||
MaintenanceDA.OptimizeDatabase();
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, $"Total took {profiler.End()} (ms)");
|
||||
await Task.FromResult(true);
|
||||
}
|
||||
|
||||
public async Task TaskMGSHSession(CommandArgs commandArgs)
|
||||
{
|
||||
@@ -431,7 +456,7 @@ namespace MarketData.Services
|
||||
Trace.Listeners.Remove("Default");
|
||||
Console.WriteLine($"Adding Trace Listener :{currentWorkingDirectory+logFolder+"/"+strLogFile}");
|
||||
Trace.Listeners.Add(new TextWriterTraceListener(currentWorkingDirectory+logFolder+"/"+strLogFile));
|
||||
MDTrace.WriteLine($"Trace Listener added.");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,$"Trace Listener added.");
|
||||
Utility.ShowLogs(currentWorkingDirectory + logFolder);
|
||||
return true;
|
||||
}
|
||||
@@ -651,7 +676,7 @@ namespace MarketData.Services
|
||||
Profiler profiler = new Profiler();
|
||||
try
|
||||
{
|
||||
MDTrace.WriteLine("Started.");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,"Started.");
|
||||
PriceIndices priceIndices=MarketDataHelper.GetConsumerPriceIndices();
|
||||
if(null==priceIndices)
|
||||
{
|
||||
@@ -697,7 +722,7 @@ namespace MarketData.Services
|
||||
Profiler profiler = new Profiler();
|
||||
try
|
||||
{
|
||||
MDTrace.WriteLine("Started.");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,"Started.");
|
||||
EconomicIndicators economicIndicators=MarketDataHelper.GetGDPPerCapita();
|
||||
if(null==economicIndicators||0==economicIndicators.Count)
|
||||
{
|
||||
@@ -857,7 +882,7 @@ namespace MarketData.Services
|
||||
Profiler profiler = new Profiler();
|
||||
try
|
||||
{
|
||||
MDTrace.WriteLine("Updating splits.");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,"Updating splits.");
|
||||
Splits splits=MarketDataHelper.GetSplits();
|
||||
if(null==splits||0==splits.Count)return;
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Got {0} split records.",splits.Count));
|
||||
@@ -880,7 +905,7 @@ namespace MarketData.Services
|
||||
Profiler profiler = new Profiler();
|
||||
try
|
||||
{
|
||||
MDTrace.WriteLine("Processing all splits");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,"Processing all splits");
|
||||
Splits splits=SplitsDA.GetUnappliedSplits();
|
||||
if(null==splits||0==splits.Count)return;
|
||||
SplitHelper.ProcessSplits(splits);
|
||||
|
||||
Reference in New Issue
Block a user