This commit is contained in:
2021-05-28 19:48:07 +00:00
parent 727cc1bc0f
commit 647ee056de

View File

@@ -345,55 +345,17 @@ todo: many biz objects are not using new PUT methodology
CURRENTLY DOING: testing, clean up and refinements
RELEASE TESTING
Very slow to load a workorder off devops, tied to the amount of data on it, less data loads faster, a empty workorder loads almost instantly.
Profiler shows it's at the server, not the transmission or client end
INFO:
It's taking 5 seconds to fetch a 3 item workorder off devops
4.6 seconds of that is processing tmie at the server according to profiler
TRY:
https://news.ycombinator.com/item?id=8010101
Fetch a bunch of times then look at server metrics both internal and digitalocean and see if any limitations noticed
Look into performance boosting docker postgres, maybe there is something to be done there, is it starved for resources? Slower than bare metal?
Test bare metal if nothing turns up with docker perf?
KEEP IN MIND:
It's a very cheap droplet, if this is the worst case for saving a lot of money then people may just be fuck it I'll live with it, but we would need to know how it fares with multiple users
need automated test to confirm this stuff and be able to fire off lots of traffic at it
technically don't even need a UI for this kind of testing, just keep requesting various workorders as it's not an UI issue anyway.
=-=-=-
Keeps refetching nonexistant key "WorkOrderItemTravelPrice"
If look at network traffic can easily see non-existant keys because second opening should not have to fetch anything, sb pre-cached
=-=-=-
=-=-=-=-=-
ERROR attempting to delete a workorder item that was generated and has a lot of data:
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2021-05-27 23:29:13.8477|ERROR|SERVER|Error=>System.InvalidCastException: Column 'purchaseorderitemid' is null.
at Npgsql.ThrowHelper.ThrowInvalidCastException_NoValue(FieldDescription field)
at Npgsql.NpgsqlDataReader.GetFieldValue[T](Int32 ordinal)
at lambda_method7490(Closure , QueryContext , DbDataReader , ResultContext , SingleQueryResultCoordinator )
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at AyaNova.Biz.WorkOrderBiz.PartRequestGetAsync(Int64 id, Boolean logTheGetEvent) in C:\data\code\raven\server\AyaNova\biz\WorkOrderBiz.cs:line 3540
at AyaNova.Biz.WorkOrderBiz.PartRequestDeleteAsync(Int64 id, IDbContextTransaction parentTransaction) in C:\data\code\raven\server\AyaNova\biz\WorkOrderBiz.cs:line 3595
at AyaNova.Biz.WorkOrderBiz.ItemDeleteAsync(Int64 id, IDbContextTransaction parentTransaction) in C:\data\code\raven\server\AyaNova\biz\WorkOrderBiz.cs:line 1313
at AyaNova.Api.Controllers.WorkOrderController.DeleteWorkOrderItem(Int64 WorkOrderItemId) in C:\data\code\raven\server\AyaNova\Controllers\WorkOrderController.cs:line 418
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
OTHER TODOs
todo:seeding now slower, is it doing unnecessary work when wo is generated like populate viz?
todo: implement name cache for populateviz with type and id so it can work from memory where possible
e.g. taxcodes likely get reused all over the place so querying for them constantly is wasted time and overhead
todo: seeder stock data / translations: loanunit "Units" have extraneous "rate" in them, i.e. "Hourly rate", sb just "Hourly"
todo: LoanUnit edit form add "*Cost" fields to UI
todo: part request