×

Conditional deferred queuing

  • US 9,141,447 B2
  • Filed: 12/15/2010
  • Issued: 09/22/2015
  • Est. Priority Date: 12/15/2010
  • Status: Active Grant
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.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×