Aggiunta delay casuale

This commit is contained in:
Samuele Locatelli
2024-05-16 15:10:10 +02:00
parent c1512b2ab8
commit 02f357acc1
+15 -5
View File
@@ -61,17 +61,17 @@ namespace Eqn.Sender.Controllers
#endif
[HttpPost("sendAndroid")]
public async Task<string> SendAndroid([FromBody] MsgPayload rawData, bool fullReturn = false, int maxToken = 499, int numParall = 4, bool dryRun = false)
public async Task<string> SendAndroid([FromBody] MsgPayload rawData, bool fullReturn = false, bool doDelay = true, int maxToken = 499, int numParall = 4, bool dryRun = false)
{
string answ = await DoSend(rawData, fullReturn, true, maxToken, numParall, dryRun);
string answ = await DoSend(rawData, fullReturn, doDelay, true, maxToken, numParall, dryRun);
// restituisco esito...
return answ;
}
[HttpPost("sendIOS")]
public async Task<string> SendIOS([FromBody] MsgPayload rawData, bool fullReturn = false, int maxToken = 499, int numParall = 4, bool dryRun = false)
public async Task<string> SendIOS([FromBody] MsgPayload rawData, bool fullReturn = false, bool doDelay = true, int maxToken = 499, int numParall = 4, bool dryRun = false)
{
string answ = await DoSend(rawData, fullReturn, false, maxToken, numParall, dryRun);
string answ = await DoSend(rawData, fullReturn, doDelay, false, maxToken, numParall, dryRun);
// restituisco esito...
return answ;
}
@@ -157,12 +157,13 @@ namespace Eqn.Sender.Controllers
/// </summary>
/// <param name="rawData">Dati payload</param>
/// <param name="fullReturn">Indica se ritornare per intero il messaggio firebase</param>
/// <param name="doDelay">Indica se mettere delay causale 15-25 ms tra ogni send (deault true)</param>
/// <param name="isAndroid">Booleano: true = Android / false=iOS</param>
/// <param name="maxToken">Num max di token x singolo invio FireBase</param>
/// <param name="numParall">Parallelismo send ammesso</param>
/// <param name="dryRun">Se true fa solo SIMULAZIONE invio</param>
/// <returns></returns>
private async Task<string> DoSend(MsgPayload rawData, bool fullReturn, bool isAndroid, int maxToken, int numParall, bool dryRun)
private async Task<string> DoSend(MsgPayload rawData, bool fullReturn, bool doDelay, bool isAndroid, int maxToken, int numParall, bool dryRun)
{
string answ = "";
//limito a 499 se anche me ne richiedesse di +...
@@ -173,6 +174,7 @@ namespace Eqn.Sender.Controllers
int numOk = 0;
int numErr = 0;
int numResp = 0;
Random rnd = new Random();
// preparo statistiche invio
ConcurrentBag<BStatData> elapsedTime = new ConcurrentBag<BStatData>();
// preparare vera lista invio (multi messaggio)
@@ -243,6 +245,10 @@ namespace Eqn.Sender.Controllers
var options = new ParallelOptions { MaxDegreeOfParallelism = numParall };
await Parallel.ForEachAsync(messageList, async (message, token) =>
{
if (doDelay)
{
await Task.Delay(rnd.Next(15, 25));
}
Stopwatch lsw = new Stopwatch();
var currData = new BStatData();
lsw.Start();
@@ -258,6 +264,10 @@ namespace Eqn.Sender.Controllers
{
foreach (var item in messageList)
{
if (doDelay)
{
await Task.Delay(rnd.Next(15, 25));
}
Stopwatch lsw = new Stopwatch();
var currData = new BStatData();
lsw.Start();