Patent ID: 8904395

Claim:
A computer implemented method for scheduling events in a virtualized computing environment, the method comprising: adding one or more events to a first queue implemented in the virtualized computing environment, in response to receiving one or more requests for the one or more events to be processed, wherein the first queue comprises a first set of events received for purpose of scheduling, wherein the first set of events remain unscheduled; removing a first event from the first set of unscheduled events in the first queue, and scheduling the first event for processing at a first scheduled time, in response to determining that a number of events in the first queue is greater than a first threshold value; adding the first event to a second queue in a queue order, wherein the queue order in the second queue is based on one or more priority attributes associated with the first event, such that the scheduling is performed to favor processing of higher priority events over lower priority events, wherein the second queue includes another set of events that are scheduled for processing, but are not mapped to a server to be processed; removing the first event from the second queue based on the queue order and mapping the first event to one or more server resources in the virtualized computing environment; adding the first event to a third queue in a queue order, wherein the queue order in the third queue is based on the priority attributes associated with the first event, wherein the third queue includes a set of events that are both scheduled for processing and are mapped to a server to be processed, wherein the first scheduled time or the server resources mapped to the first event in the third queue are updated, based on the priority attributes associated with the first event, in response to determining that: a second event with higher priority attributes is added to the third queue, wherein there exists a time schedule or resource conflict for processing the first event and the second event, and cost of updating the first scheduled time or the server resources mapped to the first event is below a threshold level; wherein, if the processing of the first event has already started, the processing continues based on at least the length of the processing of the first event and the time remaining for the processing of the first event to be complete.