Conditional deferred queuing
First Claim
Patent Images
1. A method, implemented by a computing device, for providing conditional deferred queuing, the method comprising:
- receiving, by a processor of the computing device, a message;
identifying, by the processor, a priority associated with the message;
assigning, by the processor, the message to a priority queue associated with the identified priority;
enqueuing, by the processor, the message on an active message queue associated with the priority queue;
identifying, by the processor, a throttle condition associated with the message at the computing device, the throttle condition including a concurrency limit condition that sets a limit on a number of messages that are concurrently processed for an individual user;
in response to identifying the throttle condition, creating, by the processor, a lock on the message associated with the throttle condition and assigning the message to a locked message queue of a conditional queue associated with the priority queue;
when the throttle condition is not satisfied, maintaining, by the processor, the message in the locked message queue and maintaining the lock on the message;
in response to determining that the throttle condition is satisfied, removing, by the processor, the lock on the message and moving the message to an unlocked queue associated with the conditional queue;
determining, by the processor, whether a dequeue request associated with the priority queue has been received;
in response to determining that the dequeue request has been received, determining, by the processor, whether the message is a first message in the unlocked queue associated with the priority queue; and
in response to determining that the message is the first message in the unlocked queue, delivering, by the processor, the message.
2 Assignments
0 Petitions
Accused Products
Abstract
Conditional deferred queuing may be provided. Upon receiving a message, one or more throttle conditions associated with the message may be identified. A lock associated with the throttle condition may be created on the message until the throttle condition is satisfied. Then, the lock on the message may be removed and the message may be delivered.
29 Citations
19 Claims
-
1. A method, implemented by a computing device, for providing conditional deferred queuing, the method comprising:
-
receiving, by a processor of the computing device, a message; identifying, by the processor, a priority associated with the message; assigning, by the processor, the message to a priority queue associated with the identified priority; enqueuing, by the processor, the message on an active message queue associated with the priority queue; identifying, by the processor, a throttle condition associated with the message at the computing device, the throttle condition including a concurrency limit condition that sets a limit on a number of messages that are concurrently processed for an individual user; in response to identifying the throttle condition, creating, by the processor, a lock on the message associated with the throttle condition and assigning the message to a locked message queue of a conditional queue associated with the priority queue; when the throttle condition is not satisfied, maintaining, by the processor, the message in the locked message queue and maintaining the lock on the message; in response to determining that the throttle condition is satisfied, removing, by the processor, the lock on the message and moving the message to an unlocked queue associated with the conditional queue; determining, by the processor, whether a dequeue request associated with the priority queue has been received; in response to determining that the dequeue request has been received, determining, by the processor, whether the message is a first message in the unlocked queue associated with the priority queue; and in response to determining that the message is the first message in the unlocked queue, delivering, by the processor, the message. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-readable storage device, not including a signal, which stores a set of instructions which when executed performs a method for providing conditional deferred queuing, the method executed by the set of instructions comprising:
-
receiving, by a processor, a message; identifying, by the processor, a priority associated with the message; assigning, by the processor, the message to a priority queue associated with the identified priority; enqueuing, by the processor, the message on an active message queue associated with the priority queue; identifying, by the processor, a throttle condition associated with the message including a concurrency limit condition that sets a limit on a number of messages that are concurrently processed for an individual user; in response to identifying the throttle condition, creating, by the processor, a lock on the message associated with the throttle condition and assigning the message to a locked message queue of a conditional queue associated with the priority queue; when the throttle condition is not satisfied, maintaining, by the processor, the message in the locked message queue and maintaining the lock on the message; determining whether the throttle condition is satisfied; in response to determining that the throttle condition is satisfied, removing, by the processor, the lock on the message and moving the message to an unlocked queue associated with the conditional queue; determining, by the processor, whether a dequeue request associated with the priority queue has been received; in response to determining that the dequeue request has been received, determining, by the processor, whether the message is a first message in the unlocked queue associated with the priority queue; and in response to determining that the message is the first message in the unlocked queue, delivering, by the processor, the message. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system for providing a context-aware environment, the system comprising:
-
a memory storage; and a processing unit coupled to the memory storage, wherein the processing unit is operative to; receive, by the processing unit, a message; identify, by the processing unit, a priority associated with the message; assign, by the processing unit, the message to a priority queue associated with the identified priority; enqueue, by the processor, the message on an active message queue associated with the priority queue; identify, by the processing unit, a throttle condition associated with the message including a concurrency limit condition that sets a limit on a number of messages that are concurrently processed for an individual user; in response to identifying the throttle condition, creating, by the processor, a lock on the message associated with the throttle condition and assigning the message to a locked message queue of a conditional queue associated with the priority queue; when the throttle condition is not satisfied, maintaining, by the processing unit, the message in the locked message queue and maintaining the lock on the message; in response to determining that the throttle condition is satisfied, removing, by the processing unit, the lock on the message and moving the message to an unlocked queue associated with the conditional queue; determine, by the processing unit, whether a dequeue request associated with the priority queue has been received; in response to determining that the dequeue request has been received, determine, by the processing unit, whether the message is a first message in the unlocked queue associated with the priority queue; and in response to determining that the message is the first message in the unlocked queue, deliver, by the processing unit, the message. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification