METHOD AND SYSTEM FOR HEURISTICS-BASED TASK SCHEDULING
First Claim
1. A computer readable medium comprising executable instructions for heuristics-based task scheduling, wherein executable instructions comprise instructions to:
- receive a first event notification at a task engine, wherein the first event notification is associated with a first event;
determine the first event using the first event notification;
determine whether a first predicate for a first action is satisfied by the first event, wherein the first predicate for the first action, the first action, a first action parameter for the first action are associated with a first task object in a task pool;
obtain the first action parameter using the first task object when the first predicate for the first action is satisfied by the first event;
assign the first task object a priority using a heuristics policy based on the first action parameter; and
insert the first task object into a task queue using the assigned priority, wherein the task queue comprises a plurality of task objects, and wherein the plurality of task objects are ordered according to priority,wherein the first action associated with the first task object is performed by an execution thread when the first task object is obtained from the task queue, wherein the performance of the first action is a second event, and wherein the second event is associated with a second event notification sent to the task engine.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer readable storage medium including executable instructions for heuristics-based task scheduling. Instructions include receiving a first event notification associated with a first event, where the first event is determined from the first event notification. Instructions further include determining whether a predicate for an action is satisfied by the first event, where the action predicate, the action, and an action parameter are associated with a task object in a task pool. Instructions further include obtaining the action parameter when the action predicate is satisfied by the first event, where a priority is assigned using a heuristics policy to the task object based on the action parameter. Instructions further include inserting the task object into a task queue using the assigned priority. The action associated with the task object is performed by an execution thread. The performance of the action is a second event associated with a second event notification.
-
Citations
17 Claims
-
1. A computer readable medium comprising executable instructions for heuristics-based task scheduling, wherein executable instructions comprise instructions to:
-
receive a first event notification at a task engine, wherein the first event notification is associated with a first event; determine the first event using the first event notification; determine whether a first predicate for a first action is satisfied by the first event, wherein the first predicate for the first action, the first action, a first action parameter for the first action are associated with a first task object in a task pool; obtain the first action parameter using the first task object when the first predicate for the first action is satisfied by the first event; assign the first task object a priority using a heuristics policy based on the first action parameter; and insert the first task object into a task queue using the assigned priority, wherein the task queue comprises a plurality of task objects, and wherein the plurality of task objects are ordered according to priority, wherein the first action associated with the first task object is performed by an execution thread when the first task object is obtained from the task queue, wherein the performance of the first action is a second event, and wherein the second event is associated with a second event notification sent to the task engine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for heuristics-based task scheduling, comprising:
-
a processor; an operating system executing on, wherein the operating system comprises; a task engine, configured to; receive a request; determine a first task corresponding with the request using a request-to-task mapping; obtain a first task entry corresponding with the first task from a task store, wherein the first task entry associates the first task with a first action, a first predicate for performing the first action, and a first action parameter for the first action; create a first task object in a task pool using the first task entry, wherein the first task object is associated with the first action, the first predicate, and the first action parameter; receive a first event notification, wherein the first event notification is associated with a first event; determine the first event using the first event notification; determine whether the first predicate for performing the first action is satisfied by the first event; send the first task object to a task scheduler when the first predicate for performing the first action is satisfied by the first event; the task store, configured to; store the first task entry; the task pool, configured to; store the first task object when the first predicate for the first action has not yet been satisfied; a heuristics policy store, configured to; store a heuristics policy for assigning a first priority to a task object; the task scheduler, configured to; obtain the first action parameter using the first task object when the first predicate for the first action is satisfied by the first event; assign the first task object the first priority using the heuristics policy based on the first action parameter; insert the first task object into a task queue using the first priority, wherein the task queue comprises a plurality of task objects, and wherein the plurality of task objects are ordered according to priority; the task queue, configured to; store the first task object when the first predicate for the first action has been satisfied and the first task object has been assigned the first priority by the task scheduler; a dispatcher, configured to; obtain the first task object from the task queue; determine the first action using the first task object; determine a first execution thread for performing the first action; and dispatch the first execution thread for performing the first action; wherein the operating system is configured to create a second event notification for sending to the task engine when the first execution thread has completed performing the first action, and wherein the completion of the first action is a second event associated with the second event notification. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
Specification