Fix event handling for CompanyProfile

This commit is contained in:
2025-04-11 00:41:53 -04:00
parent 732cfbfdbc
commit acbd29948a
3 changed files with 25 additions and 8 deletions

View File

@@ -145,7 +145,8 @@ namespace MarketData.DataAccess
}
catch (Exception exception)
{
MDTrace.WriteLine(LogLevel.DEBUG,exception);
MDTrace.WriteLine(LogLevel.DEBUG,$"Exception: {exception.ToString()}");
if(null!=strQuery)MDTrace.WriteLine(LogLevel.DEBUG,$"Query was {strQuery}");
return false;
}
finally

View File

@@ -56,6 +56,7 @@ namespace MarketData.Helper
{
ManualResetEvent[] availableEvents=GetAvailableEvents(resetEvents);
ManualResetEvent[] busyEvents=GetBusyEvents(resetEvents);
MDTrace.WriteLine(LogLevel.DEBUG,$"Available:{availableEvents.Length} Busy:{busyEvents.Length}");
if (null == PeekQueueItem() && 0==busyEvents.Length)
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Queue contains {0} items, busy events {1}, all done.",0,busyEvents.Length));
@@ -67,7 +68,7 @@ namespace MarketData.Helper
if (null != queueItem)
{
availableEvents[index].Reset();
CompanyProfileThreadHelper companyProfileThreadHelper = new CompanyProfileThreadHelper(queueItem,resetEvents[index]);
CompanyProfileThreadHelper companyProfileThreadHelper = new CompanyProfileThreadHelper(queueItem,availableEvents[index]);
ThreadPool.QueueUserWorkItem(ThreadPoolCallback, companyProfileThreadHelper);
try { Thread.Sleep(SLEEP_TIME_MS); }catch (Exception) { ;}
}
@@ -99,10 +100,16 @@ namespace MarketData.Helper
public void ThreadPoolCallback(Object companyProfileThreadHelperContext)
{
CompanyProfileThreadHelper companyProfileThreadHelper = (CompanyProfileThreadHelper)companyProfileThreadHelperContext;
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[UpdateCompanyProfile] Thread {0} started for {1}...", Thread.CurrentThread.ManagedThreadId, companyProfileThreadHelper.CompanyProfile.Symbol));
LoadCompanyProfileEx(companyProfileThreadHelper.CompanyProfile);
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[UpdateCompanyProfile] Thread {0} ended for {1}", Thread.CurrentThread.ManagedThreadId, companyProfileThreadHelper.CompanyProfile.Symbol));
companyProfileThreadHelper.ResetEvent.Set();
try
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[UpdateCompanyProfile] Thread {0} started for {1}...", Thread.CurrentThread.ManagedThreadId, companyProfileThreadHelper.CompanyProfile.Symbol));
LoadCompanyProfileEx(companyProfileThreadHelper.CompanyProfile);
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[UpdateCompanyProfile] Thread {0} ended for {1}", Thread.CurrentThread.ManagedThreadId, companyProfileThreadHelper.CompanyProfile.Symbol));
}
finally
{
companyProfileThreadHelper.ResetEvent.Set();
}
}
private static void LoadCompanyProfileEx(CompanyProfile companyProfile)