26/12/23 - Cambios para contablilizar tiempos al cargar dia

This commit is contained in:
2023-12-26 20:28:53 -06:00
parent d80f1d8831
commit 06921672d2
3 changed files with 95 additions and 15 deletions

View File

@@ -16,7 +16,10 @@ Sub Class_Globals
Private VERSION As Float = 0.9 Private VERSION As Float = 0.9
Private tempArray(1) As Object Private tempArray(1) As Object
Dim jobTagAnterior As String = "" 'Mod por CHV - 211109 Dim jobTagAnterior As String = "" 'Mod por CHV - 211109
Dim reqsList As List Dim reqsList, timesList As List
Dim inicioRequest As Long 'ignore
Dim inicioJobDone As Long 'ignore
Dim inicioRequestMap, inicioJobDoneMap As Map
End Sub End Sub
'Target - The module that handles JobDone (usually Me). 'Target - The module that handles JobDone (usually Me).
@@ -24,7 +27,6 @@ End Sub
Public Sub Initialize (Target As Object, ConnectorLink As String) Public Sub Initialize (Target As Object, ConnectorLink As String)
mTarget = Target mTarget = Target
link = ConnectorLink link = ConnectorLink
reqsList.Initialize
End Sub End Sub
'Sends a query request. 'Sends a query request.
@@ -34,8 +36,9 @@ End Sub
Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object) Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
Dim j As HttpJob Dim j As HttpJob
Dim ms As OutputStream Dim ms As OutputStream
Dim out2 As OutputStream = StartJob(j,ms, Tag) Dim out2 As OutputStream = StartJob(j, ms, Tag)
If reqsList.IsInitialized Then reqsList.Add(Tag) ' If reqsList.IsInitialized Then reqsList.Add(Tag)
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
WriteObject(Command.Name, out2) WriteObject(Command.Name, out2)
WriteInt(Limit, out2) WriteInt(Limit, out2)
@@ -50,7 +53,7 @@ End Sub
Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object) Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object)
Dim j As HttpJob Dim j As HttpJob
Dim ms As OutputStream Dim ms As OutputStream
Dim out2 As OutputStream = StartJob(j,ms, Tag) Dim out2 As OutputStream = StartJob(j, ms, Tag)
WriteInt(ListOfCommands.Size, out2) WriteInt(ListOfCommands.Size, out2)
For Each Command As DBCommand In ListOfCommands For Each Command As DBCommand In ListOfCommands
WriteObject(Command.Name, out2) WriteObject(Command.Name, out2)
@@ -62,11 +65,15 @@ End Sub
'Similar to ExecuteBatch. Sends a single command. 'Similar to ExecuteBatch. Sends a single command.
Public Sub ExecuteCommand(Command As DBCommand, Tag As Object) Public Sub ExecuteCommand(Command As DBCommand, Tag As Object)
If reqsList.IsInitialized Then reqsList.Add(Tag) ' If reqsList.IsInitialized Then reqsList.Add(Tag)
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
ExecuteBatch(Array As DBCommand(Command), Tag) ExecuteBatch(Array As DBCommand(Command), Tag)
End Sub End Sub
Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream
' inicioRequest = DateTime.now
If reqsList.IsInitialized Then reqsList.Add(Tag)
If timesList.IsInitialized Then timesList.Add(DateTime.now)
j.Initialize("DBRequest", mTarget) j.Initialize("DBRequest", mTarget)
j.Tag = Tag j.Tag = Tag
MemoryStream.InitializeToBytesArray(0) MemoryStream.InitializeToBytesArray(0)
@@ -190,7 +197,13 @@ End Sub
'Handles the Job result and returns a DBResult. 'Handles the Job result and returns a DBResult.
Public Sub HandleJob(Job As HttpJob) As DBResult Public Sub HandleJob(Job As HttpJob) As DBResult
Dim start As Long = DateTime.Now 'ignore If jobTagAnterior <> Job.Tag Then
' inicioJobDone = DateTime.Now 'ignore
If inicioJobDoneMap.IsInitialized Then inicioJobDoneMap.Put(Job.Tag, DateTime.Now)
' tiempos.Put(Job.taskId, CreateMap("inicioJobDone":inicioJobDone))
' Log(tiempos)
' Log("############# " & Job.taskId)
End If
Dim In As InputStream = Job.GetInputStream Dim In As InputStream = Job.GetInputStream
Dim cs As CompressedStreams Dim cs As CompressedStreams
In = cs.WrapInputStream(In, "gzip") In = cs.WrapInputStream(In, "gzip")
@@ -201,8 +214,6 @@ Public Sub HandleJob(Job As HttpJob) As DBResult
table.Columns.Initialize table.Columns.Initialize
table.rows.Initialize table.rows.Initialize
table.Tag = Job.Tag table.Tag = Job.Tag
If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211109
jobTagAnterior = Job.Tag 'Mod por CHV - 211109
If method = "query" Then If method = "query" Then
Dim numberOfColumns As Int = ReadInt(In) Dim numberOfColumns As Int = ReadInt(In)
For i = 0 To numberOfColumns - 1 For i = 0 To numberOfColumns - 1
@@ -225,8 +236,13 @@ Public Sub HandleJob(Job As HttpJob) As DBResult
End If End If
In.Close In.Close
' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112 ' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112
If jobTagAnterior <> table.Tag Then
LogColor("HandleJob: '"&table.Tag&"'" & " - Registros: " & table.Rows.Size, Colors.RGB(115, 0, 140)) 'Mod por CHV - 211109
End If
jobTagAnterior = table.Tag 'Mod por CHV - 211109
Return table Return table
End Sub End Sub
'Reads a file and returns the file as a bytes array. 'Reads a file and returns the file as a bytes array.
Public Sub FileToBytes(Dir As String, FileName As String) As Byte() Public Sub FileToBytes(Dir As String, FileName As String) As Byte()
Dim out As OutputStream Dim out As OutputStream
@@ -236,6 +252,7 @@ Public Sub FileToBytes(Dir As String, FileName As String) As Byte()
out.Close out.Close
Return out.ToBytesArray Return out.ToBytesArray
End Sub End Sub
'Converts an image to a bytes array (for BLOB fields). 'Converts an image to a bytes array (for BLOB fields).
Public Sub ImageToBytes(Image As Bitmap) As Byte() Public Sub ImageToBytes(Image As Bitmap) As Byte()
Dim out As OutputStream Dim out As OutputStream
@@ -244,6 +261,7 @@ Public Sub ImageToBytes(Image As Bitmap) As Byte()
out.Close out.Close
Return out.ToBytesArray Return out.ToBytesArray
End Sub End Sub
'Converts a bytes array to an image (for BLOB fields). 'Converts a bytes array to an image (for BLOB fields).
Public Sub BytesToImage(bytes() As Byte) As Bitmap Public Sub BytesToImage(bytes() As Byte) As Bitmap
Dim In As InputStream Dim In As InputStream
@@ -252,6 +270,7 @@ Public Sub BytesToImage(bytes() As Byte) As Bitmap
bmp.Initialize2(In) bmp.Initialize2(In)
Return bmp Return bmp
End Sub End Sub
'Prints the table to the logs. 'Prints the table to the logs.
Public Sub PrintTable(Table As DBResult) Public Sub PrintTable(Table As DBResult)
Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size) Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size)
@@ -267,8 +286,58 @@ Public Sub PrintTable(Table As DBResult)
For Each record As Object In row For Each record As Object In row
sb.Append(record).Append(TAB) sb.Append(record).Append(TAB)
Next Next
ToastMessageShow(sb.ToString, True) Log(sb.ToString)
Next Next
End Sub End Sub
Sub requestTimes(tag As String) As Map 'ignore
Private times As Map
times.Initialize
' Log("###### " & tag)
' Log(reqsList.IsInitialized)
If reqsList.IsInitialized Then
' Log(reqsList)
' Private pos As Int = reqsList.IndexOf(tag)
If inicioRequestMap.ContainsKey(tag) Then
inicioRequest = inicioRequestMap.Get(tag)
' Log(">>>>>>> From inicioRequestMap")
End If
If inicioJobDoneMap.ContainsKey(tag) Then
inicioJobDone = inicioJobDoneMap.Get(tag)
' Log(">>>>>>> From inicioJobDoneMap")
End If
End If
' Log($"${inicioJobDone} - ${inicioRequest}"$)
Private requestTime As String = NumberFormat2(((inicioJobDone - inicioRequest) / 1000),1,5,0,False)
Private JobDoneTime As String = NumberFormat2(((DateTime.Now - inicioJobDone) / 1000),1,5,0,False)
times.Put("requestTime", requestTime)
times.Put("jobDoneTime", JobDoneTime)
times.Put("totalTime", NumberFormat2((JobDoneTime + requestTime),1,5,0,False))
Return times
End Sub
'Initializes request tracking
Sub trackInit 'ignore
Log(">>>>>>>>> TRACKINIT ")
reqsList.Initialize
timesList.Initialize
inicioRequestMap.Initialize
inicioJobDoneMap.Initialize
End Sub
Sub trackNext(job As HttpJob)
If reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
Private quitamos As String = ""
If reqsList.IndexOf(job.tag) <> -1 Then
Private pos As Int = reqsList.IndexOf(job.tag)
If pos <> -1 Then
inicioRequestMap.Put(job.Tag, timesList.Get(pos))
reqsList.RemoveAt(pos)
timesList.RemoveAt(pos)
End If
quitamos = $"Quitamos ${job.tag} - "$
End If
LogColor(">>>>>> Requests: " & reqsList.Size & " - " & quitamos & reqsList, Colors.Blue)
LogColor(">>>>>> inicioRequestMap:" & inicioRequestMap.Size & " - " & inicioRequestMap, Colors.Magenta)
End If
End Sub

View File

@@ -61,7 +61,7 @@ ModuleClosedNodes17=
ModuleClosedNodes18=6 ModuleClosedNodes18=6
ModuleClosedNodes19=4,5,6,7,8,9,10 ModuleClosedNodes19=4,5,6,7,8,9,10
ModuleClosedNodes2=2,6,7 ModuleClosedNodes2=2,6,7
ModuleClosedNodes20= ModuleClosedNodes20=3,5,6,7,8,9,10
ModuleClosedNodes21= ModuleClosedNodes21=
ModuleClosedNodes22= ModuleClosedNodes22=
ModuleClosedNodes23= ModuleClosedNodes23=
@@ -73,6 +73,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9=2,5,6,8,10,11,12,13,24,36,37 ModuleClosedNodes9=2,5,6,8,10,11,12,13,24,36,37
NavigationStack=MAPA_RUTAS,Activity_Create,106,0,Visual Designer,productos.bal,-100,1,seleccion,Resumen_Click,2483,2,seleccion,traeVenta,2771,3,seleccion,b_e_resumen_Click,2758,0,seleccion,SUBIR_P_Click,2750,0,seleccion,JobDone,1110,6,MAPA_RUTAS,MapFragment1_Ready,109,0,seleccion,cargar_Click,1101,0,colonia2,HACER_PEDIDO,360,0 NavigationStack=DBRequestManager,HandleJob,197,0,DBRequestManager,WriteObject,119,0,DBRequestManager,requestTimes,294,0,seleccion,Globals,164,0,colonia2,Activity_Create,94,0,colonia2,Globals,78,0,Main,Activity_Create,88,0,Main,Activity_Pause,282,0,seleccion,JobDone,1975,0,seleccion,cargar_Click,924,0
SelectedBuild=0 SelectedBuild=0
VisibleModules=21,20,24,14,5 VisibleModules=21,20,24,14,5,6

View File

@@ -168,6 +168,7 @@ Sub Globals
Dim ime As IME Dim ime As IME
Private l_monto_kc As Label Private l_monto_kc As Label
Private l_version As Label Private l_version As Label
Dim inicioContador As Double
End Sub End Sub
Sub Activity_Create(FirstTime As Boolean) Sub Activity_Create(FirstTime As Boolean)
@@ -932,7 +933,11 @@ Sub cargar_Click
c.Position = 0 c.Position = 0
usuario = c.GetString("USUARIO") usuario = c.GetString("USUARIO")
reqManager.reqsList.Initialize 'inicializamos lista de requests. DateTime.TimeFormat = "HHmmss"
inicioContador = DateTime.Now
reqManager.trackInit
' reqManager.reqsList.Initialize 'inicializamos lista de requests.
Dim cmd As DBCommand Dim cmd As DBCommand
cmd.Initialize cmd.Initialize
@@ -1978,6 +1983,12 @@ Sub JobDone(Job As HttpJob)
End If End If
Job.Release Job.Release
End If End If
Log($"tiempo Request "${Job.Tag}": ${((reqManager.inicioJobDone - reqManager.inicioRequest)/1000)}"$)
Log($"tiempo JobDone "${Job.Tag}": ${((DateTime.Now - reqManager.inicioJobDone)/1000)}"$)
Log($"tiempo Total "${Job.Tag}": ${((DateTime.Now - inicioContador)/1000)}"$)
Log(reqManager.requestTimes(Job.Tag))
End Sub End Sub
Sub Activity_KeyPress (key As Int) As Boolean Sub Activity_KeyPress (key As Int) As Boolean