Add ability to suppress notificiations IPMonitor
This commit is contained in:
14
.vscode/launch.json
vendored
14
.vscode/launch.json
vendored
@@ -25,6 +25,18 @@
|
|||||||
"cwd": "${workspaceFolder}/MarketDataServer",
|
"cwd": "${workspaceFolder}/MarketDataServer",
|
||||||
"console": "internalConsole",
|
"console": "internalConsole",
|
||||||
"stopAtEntry": false
|
"stopAtEntry": false
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"name": ".NET Core Launch (ipmonitor)",
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "build",
|
||||||
|
"program": "${workspaceFolder}/IPMonitor/bin/Debug/net8.0/ipmonitor.dll",
|
||||||
|
"args": ["IPMONITOR","/FORCE:true"],
|
||||||
|
"cwd": "${workspaceFolder}/IPMonitor",
|
||||||
|
"console": "internalConsole",
|
||||||
|
"stopAtEntry": false
|
||||||
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -153,13 +153,20 @@ namespace IPMonitor
|
|||||||
try{Thread.Sleep(TIMEOUT_BETWEEN_ATTEMPTS);}catch{;}
|
try{Thread.Sleep(TIMEOUT_BETWEEN_ATTEMPTS);}catch{;}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
address = GetHttpRequest(request);
|
HttpNetResponse response = HttpNetRequest.GetRequestNoEncodingV7(request);
|
||||||
if(null==address)
|
if(!response.Success)
|
||||||
{
|
{
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Request failed {0}. Will retry after {1} (ms) ",request,TIMEOUT_BETWEEN_ATTEMPTS));
|
MDTrace.WriteLine(LogLevel.DEBUG,$"Request {request} failed with {response.StatusCode}. Will retry after {TIMEOUT_BETWEEN_ATTEMPTS} (ms) ");
|
||||||
try{Thread.Sleep(TIMEOUT_BETWEEN_ATTEMPTS);}catch{;}
|
try{Thread.Sleep(TIMEOUT_BETWEEN_ATTEMPTS);}catch{;}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
address = response.ResponseString;
|
||||||
|
if(String.IsNullOrEmpty(address))
|
||||||
|
{
|
||||||
|
MDTrace.WriteLine(LogLevel.DEBUG,$"Request {request} received an empty response. Will retry after {TIMEOUT_BETWEEN_ATTEMPTS} (ms) ");
|
||||||
|
try{Thread.Sleep(TIMEOUT_BETWEEN_ATTEMPTS);}catch{;}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(null==address)
|
if(null==address)
|
||||||
{
|
{
|
||||||
@@ -189,31 +196,6 @@ namespace IPMonitor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sends an HttpRequest and receives the response string. Used by GetPublicIPAddress
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="ipAddress"></param>
|
|
||||||
public static String GetHttpRequest(String strRequest)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
WebRequest request = WebRequest.Create(strRequest);
|
|
||||||
using WebResponse response = request.GetResponse();
|
|
||||||
using (StreamReader stream = new StreamReader(response.GetResponseStream()))
|
|
||||||
{
|
|
||||||
return stream.ReadToEnd();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(Exception exception)
|
|
||||||
{
|
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Request {strRequest} Failed with {1}",exception.ToString()));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Updates ZoneEdit with the given ipaddress.
|
/// Updates ZoneEdit with the given ipaddress.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -342,6 +324,14 @@ namespace IPMonitor
|
|||||||
String smsUserName = GlobalConfig.Instance.Configuration["sms_smsusername"];
|
String smsUserName = GlobalConfig.Instance.Configuration["sms_smsusername"];
|
||||||
String smsPassword = GlobalConfig.Instance.Configuration["sms_smspassword"];
|
String smsPassword = GlobalConfig.Instance.Configuration["sms_smspassword"];
|
||||||
String[] smsRecipients = GlobalConfig.Instance.Configuration["sms_smsrecipients"].Split(',');
|
String[] smsRecipients = GlobalConfig.Instance.Configuration["sms_smsrecipients"].Split(',');
|
||||||
|
bool sendNotifications = bool.Parse(GlobalConfig.Instance.Configuration["send_notifications"]);
|
||||||
|
|
||||||
|
if(!sendNotifications)
|
||||||
|
{
|
||||||
|
MDTrace.WriteLine(LogLevel.DEBUG,$"Not sending Message '{message}' to {GlobalConfig.Instance.Configuration["sms_smsrecipients"]} because notifications are disabled.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SMSClient.SendSMSEmail(message, smsUserName, smsRecipients, smsSMTPAddress, smsUserName, smsPassword);
|
SMSClient.SendSMSEmail(message, smsUserName, smsRecipients, smsSMTPAddress, smsUserName, smsPassword);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"send_notifications" : "false",
|
||||||
"working_folder" : "/ipaddress",
|
"working_folder" : "/ipaddress",
|
||||||
"sms_smtpaddress" : "smtp.gmail.com",
|
"sms_smtpaddress" : "smtp.gmail.com",
|
||||||
"sms_smsusername" : "skessler1964@gmail.com",
|
"sms_smsusername" : "skessler1964@gmail.com",
|
||||||
|
|||||||
@@ -11,8 +11,7 @@
|
|||||||
<HintPath>..\assemblies\HtmlAgilityPack.dll</HintPath>
|
<HintPath>..\assemblies\HtmlAgilityPack.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<ProjectReference Include="../../Axiom/Axiom.Core/Axiom.Core.csproj" />
|
<ProjectReference Include="../../Axiom/Axiom.Core/Axiom.Core.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.3" />
|
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.3" />
|
||||||
<PackageReference Include="MySql.Data" Version="9.2.0" />
|
<PackageReference Include="MySql.Data" Version="9.2.0" />
|
||||||
|
|||||||
@@ -105,6 +105,6 @@ CRON_DIR_IPMONITOR=/opt/MarketData/IPMonitor
|
|||||||
0 0 15 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEFUNDAMENTALS > /dev/null 2>&1
|
0 0 15 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEFUNDAMENTALS > /dev/null 2>&1
|
||||||
0 0 15 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEHISTORICAL > /dev/null 2>&1
|
0 0 15 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEHISTORICAL > /dev/null 2>&1
|
||||||
15 0 15 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk CALCSTICKER /WAITFORCOMPLETION:UPDATEFINANCIALSTATEMENTS,UPDATEFUNDAMENTALS,UPDATEHISTORICAL > /dev/null 2>&1
|
15 0 15 * * cd $CRON_DIR ; /opt/MarketData/MarketData/mk CALCSTICKER /WAITFORCOMPLETION:UPDATEFINANCIALSTATEMENTS,UPDATEFUNDAMENTALS,UPDATEHISTORICAL > /dev/null 2>&1
|
||||||
0 * * * * cd $CRON_DIR_IPMONITOR ; /opt/MarketData/IPMonitor/ipmonitor /FORCE:true > /dev/null 2>&1
|
0 * * * * cd $CRON_DIR_IPMONITOR ; /opt/MarketData/IPMonitor/ipmonitor IPMONITOR /FORCE:true > /dev/null 2>&1
|
||||||
10,20,30,40,50 * * * * cd $CRON_DIR_IPMONITOR ; /opt/MarketData/IPMonitor/ipmonitor > /dev/null 2>&1
|
10,20,30,40,50 * * * * cd $CRON_DIR_IPMONITOR ; /opt/MarketData/IPMonitor/ipmonitor > /dev/null 2>&1
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user