| CPC G06F 9/4881 (2013.01) [G06F 9/542 (2013.01)] | 20 Claims |

|
1. A system, comprising:
a processor; and
one or more non-transitory computer readable memory storing instructions and data associated with an event scheduler and two or more event handlers, each event handler of the two or more event handlers associated with a corresponding event source of two or more event sources, the data associated with the two or more event handlers comprising a plurality of data tables for each of the event handlers, each of the plurality of data tables having an associated event type, the data associated with the event scheduler comprising a priority queue and a global insertion order number, wherein the instructions, when executed by the processor, cause the processor to:
receive, from one of the two or more event sources, an event and associated event data;
determine, by the event handler corresponding to the event source of the event data, an event type and an object key for the event;
store the event data in one of the plurality of data tables of the event handler corresponding to the event source of the event data, the one of the plurality of data tables having an associated event type that matches the event type of the event;
generate, using the event handler, a priority group number associated with the event;
generate, using the event handler, an insertion order number associated with the event, by incrementing the global insertion order number;
generate, using the event handler, a new queue element comprising the priority group number, the insertion order number, a reference to the event handler, the object key, and the event type of the event;
insert the new queue element to the priority queue of the event scheduler, the priority queue storing at least one existing queue element, the existing queue element comprising a second priority group number, a second insertion order number, a second reference to an event handler, a second object key, and a second event type of a second event, wherein inserting the new queue element includes organizing the new queue element and the existing queue element in order of priority in the priority queue of the event scheduler based on a comparison of the priority group number of the new queue element and the second priority group number of the existing queue element;
send a signal from the event handler to the event scheduler, the signal indicating availability of the new queue element to process;
retrieve, using the event scheduler, the event data associated with a queue element with a highest priority in the priority queue from the one of the plurality of data tables; and
pass the event data associated with the queue element with the highest priority in the priority queue from the event scheduler to an admin application for processing.
|