FOUR-30871 [50383] Slow response time in API PUT /api/1.0/tasks/xxxxx. - #8796
FOUR-30871 [50383] Slow response time in API PUT /api/1.0/tasks/xxxxx.#8796gproly wants to merge 8 commits into
Conversation
Description: mergeLatestStoredData() now reads only the data column via value() instead of hydrating a full ProcessRequest row—this path runs often during BPMN transitions, so it cuts unnecessary I/O and model work on large JSON payloads. BpmnAction loads the request with with(['process','processVersion','collaboration']) to avoid N+1s when wiring the engine, and uses whereKey()->exists() instead of find() for the lock existence check so the DB does not return full rows when only presence matters. Related tickets: https://processmaker.atlassian.net/browse/FOUR-30871
|
QA server K8S was successfully deployed https://ci-2350a76087.engk8s.processmaker.net |
|
QA server K8S was successfully deployed https://ci-2350a76087.engk8s.processmaker.net |
|
QA server K8S was successfully deployed https://ci-2350a76087.engk8s.processmaker.net |
|
QA server K8S was successfully deployed https://ci-2350a76087.engk8s.processmaker.net |
|
|
QA server K8S was successfully deployed https://ci-2350a76087.engk8s.processmaker.net |
Load only required columns for authorize, complete, reassign, and response instead of full Process/ProcessRequest rows with BPMN and data JSON. Add ProcessExecutionRawRepository for partial selects and flat assignment queries; use it in TaskController and TokenRepository. Optimize mergeLatestStoredData and BpmnAction instance loading (exists + eager load). Align assignment rules with Process::getNextUser. https://processmaker.atlassian.net/browse/FOUR-30871
|
…oading Consolidate findInstance to eager-load process relations on the normal path while keeping lightweight queries for withUpdatedContext fast-path checks. https://processmaker.atlassian.net/browse/FOUR-30871
|
Closing this PR due to merge conflicts and unsigned commit policy violations on the original branch. The changes have been reapplied on top of the latest develop in bugfix/FOUR-30871-A. A new PR will be opened from that branch. |





Description:
mergeLatestStoredData() now reads only the data column via value() instead of hydrating a full ProcessRequest row—this path runs often during BPMN transitions, so it cuts unnecessary I/O and model work on large JSON payloads.
BpmnAction loads the request with with(['process','processVersion','collaboration']) to avoid N+1s when wiring the engine, and uses whereKey()->exists() instead of find() for the lock existence check so the DB does not return full rows when only presence matters.
Related tickets:
https://processmaker.atlassian.net/browse/FOUR-30871
ci:deploy