IP Library Granted Patent US 11,838,223
Granted Patent B2
US 11,838,223 · App. 17/823,749 · Granted Dec 5, 2023

Techniques for handling message queues

Inventors: Helen Kwong (Palo Alto, CA); Benjamin Busjaeger (San Carlos, CA)
Assignee: Salesforce, Inc.
H04L49/90H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,838,223
App. No.
17/823,749
Granted
Dec 5, 2023
Kind
B2
Abstract

Techniques are disclosed relating to handling queues. A server-based platform, in some embodiments, accesses queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications. In some embodiments, the platform assigns, based on the performance attributes, a corresponding set of the plurality of queues to each of a plurality of processing nodes of the platform. In some embodiments, the assigning of a corresponding set of queues to a given one of the plurality of processing nodes causes instantiation of: a first set of one or more dequeuing threads and a second set of one or more processing threads. The dequeuing threads may be executable to dequeue one or more messages stored in the corresponding set of queues. The processing threads may be executable to perform one or more tasks specified in the dequeued one or more messages.

Claims (42)

1. A method, comprising:

provisioning, by a computer system, a set of message queues capable of storing messages produced by applications associated with the computer system, wherein a message identifies a set of tasks to be performed by the computer system;

determining, by the computer system, that a first component of the computer system has failed to successfully process the message in a first queue;

incrementing a processed count associated with the message based at least in part on the first component of the computer system failing to successfully process the message;

moving, by the computer system, the message to a dead-letter queue that is accessible to a second, different component of the computer system for inspecting the message for an issue; and

moving, by the computer system, the message from the dead-letter queue to a second queue based at least in part on the processed count associated with the message exceeding a limit.

2. The method of claim 1 , further comprising:

accessing the processed count for the message that is indicative of a number of attempts to process the message by the first component.

3. The method of claim 2 , further comprising:

determining, based at least in part on accessing the processed count, that the processed count exceeds the limit.

4. The method of claim 3 , wherein moving the message to the second queue comprises:

moving the message to the second queue that is associated with debugging the message.

5. The method of claim 1 , wherein the dead-letter queue is associated with the applications and the set of message queues.

6. An system, comprising:

one or more processors;

one or more memories coupled with the one or more processors; and

instructions stored in the one or more memories and executable by the one or more processors to cause the system to:

provision, by a computer system, a set of message queues capable of storing messages produced by applications associated with the computer system, wherein a message identifies a set of tasks to be performed by the computer system;

determine, by the computer system, that a first component of the computer system has failed to successfully process the message in a first queue;

increment a processed count associated with the message based at least in part on the first component of the computer system failing to successfully process the message;

move, by the computer system, the message to a dead-letter queue that is accessible to a second, different component of the computer system for inspecting the message for an issue; and

move, by the computer system, the message from the dead-letter queue to a second queue based at least in part on the processed count associated with the message exceeding a limit.

7. The system of claim 6 , wherein the instructions are further executable by the one or more processors to cause the system to:

access the processed count for the message that is indicative of a number of attempts to process the message by the first component.

8. The system of claim 7 , wherein the instructions are further executable by the one or more processors to cause the system to:

determine, based at least in part on accessing the processed count, that the processed count exceeds the limit.

9. The system of claim 8 , wherein the instructions to move the message to the second queue are executable by the one or more processors to cause the system to:

move the message to the second queue that is associated with debugging the message.

10. The system of claim 6 , wherein the dead-letter queue is associated with the applications and the set of message queues.

11. A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:

provision, by a computer system, a set of message queues capable of storing messages produced by applications associated with the computer system, wherein a message identifies a set of tasks to be performed by the computer system;

determine, by the computer system, that a first component of the computer system has failed to successfully process the message in a first queue;

increment a processed count associated with the message based at least in part on the first component of the computer system failing to successfully process the message;

move, by the computer system, the message to a dead-letter queue that is accessible to a second, different component of the computer system for inspecting the message for an issue; and

move, by the computer system, the message from the dead-letter queue to a second queue based at least in part on the processed count associated with the message exceeding a limit.

12. The non-transitory computer-readable medium of claim 11 , wherein the instructions are further executable by the one or more processors to:

access the processed count for the message that is indicative of a number of attempts to process the message by the first component.

13. The non-transitory computer-readable medium of claim 12 , wherein the instructions are further executable by the one or more processors to:

determine, based at least in part on accessing the processed count, that the processed count exceeds the limit.

14. The non-transitory computer-readable medium of claim 13 , wherein the instructions to move the message to the second queue are executable by the one or more processors to:

move the message to the second queue that is associated with debugging the message.

15. The non-transitory computer-readable medium of claim 11 , wherein the dead-letter queue is associated with the applications and the set of message queues.

Assignments (2)
CHANGE OF NAME Recorded Oct 16, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065240/0048 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2023
From: KWONG, HELEN; BUSJAEGER, BENJAMIN
To: SALESFORCE.COM, INC.
Reel/Frame 064768/0346 →
Continuity (4)
Continuation 17162698 · Jan 29, 2021
Continuation 16834955 · Mar 30, 2020
Continuation 15974283 · May 8, 2018
Related Publication 20220417184A1 · Dec 29, 2022
Cited By (1)
US 12,259,892