fix: dispatch timeout metrics for all priorities with staggered delay#4196
Conversation
…re-with-staggered-dispatch
…re-with-staggered-dispatch
|
i will remove the delay handle and open a new issue to resolve worker pool accumulate usage |
…re-with-staggered-dispatch
…re-with-staggered-dispatch
…re-with-staggered-dispatch
|
If we make this change, could it result in an unmanageable number of tasks? When a task is deemed unavailable, is there no longer a need to retry its other subtasks? |
|
1、the judgement of priority == 0 introduce by #66 at first it's same as this changed. and alert already is different now. but i can‘t estimate the number of tasks indeed currently. 2、it's true that no longer a need to retry its other substasks if a task is deemed unabailable. But the function monitorCollectTaskTimeout is guarantee the bottom line for task. Doesn't that mean the availability task with priority 0 has already been passed?if the program has run up to here. |
@tomsun28 @hengyuss That's right; simply removing the
|
|
@tomsun28 But I think we should adjust our approach here, rather than simply removing this validation. For example:
→ p0 Success Proceed sequentially, advancing one layer every 4 minutes; at any given time, only one layer is active, provided that p0 succeeds. If p0 fails first, maintain the existing design—the top layer will short-circuit—and simply proceed to the next round. To summarize, the design goals are as follows: The fallback thread can advance the state machine without relying on the response status of a deadlocked task. Interrupts are used to free up resources as much as possible, while fallback dispatch ensures bounded recovery. |
What's changed?
fix #4194
Allow all priority timeout metrics to execute dispatchCollectData and add staggered delay to avoid thread pool overload
Checklist
Add or update API