-
Notifications
You must be signed in to change notification settings - Fork 952
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Proposal] Implementing an Automatic Re-Queuing and Status Transition Mechanism #3716
Comments
Can you also paste the related issues? |
It's a good idea, but what I concern is that add a new action is a little heavy and it's a little cut off from enqueue action. |
I think "requeue" and "enqueue" are two decoupled logical operations, so I didn’t consider placing them within the same action. From the current perspective, besides increasing the overhead of invoking |
It doesn’t have to be placed in the enqueue action. The func |
Keeping jobs in Inqueue status still makes sense in general scenarios. Because the jobs have already acquired their quotas and will be scheduled util the required resources are available. |
So what's the difference between re-enqueuing jobs following specific strategies logs and re-enqueue when job schedulable? |
How about discussing in weekly meeting? |
What is the problem you're trying to solve
We can implement a mechanism that supports automatically re-queuing tasks that have entered the "Inqueue" status but remain unscheduled for an extended period of time. These tasks would then be transitioned to the “Pending” status.
This will help optimize the queue’s efficiency and ensure that tasks are processed in a timely manner.
When tasks in the scheduling queue remain unscheduled for an extended period due to factors such as affinity or resource fragmentation, they are occupying quota while blocking subsequent jobs from entering the queue.
The system can automatically release these resources to improve the allocation rate of the queue. This ensures that the system can more efficiently utilize its resources and process jobs in a timely manner.
Describe the solution you'd like
We can add a requeue action,to incorporate a re-enqueue process.
The main process in the entire action is to traverse all jobs in Pending and Inqueue status, as well as jobs with pending tasks. By a registerable function
ssn.JobRequeueable
, we determine whether the job needs to be re-queued.Next, we will traverse the tasks that need to be re-queued, and call another registerable function
ssn.JobRequeue
, to implement the re-queueing of the tasks.Additional context
No response
The text was updated successfully, but these errors were encountered: