Entity event queue - support remove running events
Clear running event cache, when running event is deleted.
Removing event is used as standard operation.
#2 Updated by Radek Tomiška 5 months ago
- Status changed from In Progress to Needs feedback
- Assignee changed from Radek Tomiška to Ondřej Kopr
- % Done changed from 0 to 90
Support remove running events without server restart is implemented. Running events can be removed and event's owner is not blocked from another processing.
Note: The only way, how can be reproduced is to create some processor, which never ends - e.g. provisioning to target system without timeout (running event was removed correctly other ways).
- Event executor core pool size uses CPU count + 1 as default. Was configured CPU count * 2 => too overload
scheduler.event.executor.corePoolSize=<CPU count + 1>
- Set higher queue capacity - prevent to prepare events repetitively and use additional threads till maxPoolSize is exhausted.
- prepared (created) events are not loaded, when the previously loaded events still running
The first two point can be configured without release is needed.I've added:
- new bulk action for executing account management for the selected identity - usable for testing or e.g. if some accounts are deleted manually and has to be created again. Available for system admins (SYSTEM_ADMIN permission)
- re-save identity bulk action was hidden (will be removed in 10.x version) - new action for executing provisioning only was created.
Could you do a review please?
#3 Updated by Radek Tomiška 5 months ago
I've improved loading prepared events from queue for different owners. Running event owners are excluded from search => prevent to one owner with 100+ events in queue blocks events for other owner.
#4 Updated by Ondřej Kopr 4 months ago
- Status changed from Needs feedback to Resolved
- Assignee changed from Ondřej Kopr to Radek Tomiška
- % Done changed from 90 to 100
For testing I use same behavior as you use in test. I try remove parents events, children events and from both sides it is working as I except. Simulate this problem is really hard (event simulate this in tests).
Also I tests some another magic with events, eq: generate hundrets of events and then remove all and etc.
Behavior with clean cache works correctly now.