IP Library Granted Patent US 8,793,691
Granted Patent B2
US 8,793,691 · App. 13/088,291 · Granted Jul 29, 2014

Managing and forwarding tasks to handler for processing using a message queue

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 8,793,691
App. No.
13/088,291
Granted
Jul 29, 2014
Kind
B2
Abstract

In accordance with embodiments, there are provided mechanisms and methods for transporting a task to a handler, utilizing a queue. These mechanisms and methods for transporting a task to a handler, utilizing a queue can enable improved task management, increased efficiency, dynamic task processing, etc.

Claims (48)

1. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, the computer readable program code adapted to be executed to cause a computer to implement a method for transporting a task to a handler, utilizing a queue, the method comprising:

receiving a task at a system from a sender;

identifying a signature provided by the sender;

comparing the signature provided by the sender to signatures within a message queue of the system;

returning the task to the sender when the signature provided by the sender matches a signature within the message queue of the system;

inserting the task, the signature, and an identifier into the message queue of the system when the signature provided by the sender does not match any of the signatures within the message queue of the system, and transporting the task to a handler, including removing the task from the message queue and delivering the task to the handler for completion by the handler, where the handler intermediately commits to the task by cloning the task and inserting it into the message queue, and where if the task is successfully processed by the handler, the cloned task is discarded from the message queue.

2. The computer program product of claim 1 , wherein the task includes a request to perform an action within the system.

3. The computer program product of claim 1 , wherein the task is received from a user of the system.

4. The computer program product of claim 1 , wherein the task is initiated from within the system.

5. The computer program product of claim 1 , wherein a description of the task is inserted with the task into the message queue when the signature provided by the sender does not match any of the signatures within the message queue of the system.

6. The computer program product of claim 1 , wherein an action to be performed on the task is inserted with the task into the message queue when the signature provided by the sender does not match any of the signatures within the message queue of the system.

7. The computer program product of claim 1 , wherein the message queue is associated with a clustered database node.

8. The computer program product of claim 7 , wherein one or more organizations within the system are divided into one or more subgroups, and each subgroup is associated with a different clustered database node.

9. The computer program product of claim 8 , wherein all tasks from an organization that are inserted into the message queue are stored on the clustered database node associated with the organization.

10. The computer program product of claim 7 , wherein if the clustered database node fails, one or more additional nodes may take over for the failed node.

11. The computer program product of claim 1 , wherein the task is returned to the message queue if the handler fails to process the task.

12. The computer program product of claim 1 , wherein if the task is unsuccessfully processed by the handler, the cloned task is retrieved from the queue and completed by the handler from a point noted by the handler before the task failed.

13. The computer program product of claim 1 , wherein if it is determined that the task is of a type that causes other services within the system to be disrupted, the task is suspended within the message queue.

14. The computer program product of claim 1 , wherein a time limit is associated with the handler when it processes the task.

15. The computer program product of claim 1 , wherein only the sender is allowed to view messages within the message queue and dequeue messages from the message queue.

16. The computer program product of claim 1 , wherein the handler waits until a predetermined number of tasks appear on the message queue before retrieving the predetermined number of tasks from the message queue.

17. The computer program product of claim 1 , further comprising identifying a number of times the task has been received from the sender, and producing an alert when the number of times exceeds a predetermined number.

18. The computer program product of claim 1 , further comprising labeling the task in the message queue as being associated with a particular handler and re-inserting the task into the message queue, where the re-inserted task has an identifier that matches an identifier of the task when it was first inserted into the message queue.

19. A method, comprising:

receiving a task at a system from a sender;

identifying a signature provided by the sender;

comparing the signature provided by the sender to signatures within a message queue of the system;

returning the task to the sender when the signature provided by the sender matches a signature within the message queue of the system;

inserting the task, the signature, and an identifier into the message queue of the system when the signature provided by the sender does not match any of the signatures within the message queue of the system, and transporting the task to a handler, including removing the task from the message queue and delivering the task to the handler for completion by the handler, where the handler intermediately commits to the task by cloning the task and inserting it into the message queue, and where if the task is successfully processed by the handler, the cloned task is discarded from the message queue.

20. An apparatus, comprising:

a processor for:

receiving a task at a system from a sender;

identifying a signature provided by the sender;

comparing the signature provided by the sender to signatures within a message queue of the system;

returning the task to the sender when the signature provided by the sender matches a signature within the message queue of the system;

inserting the task, the signature, and an identifier into the message queue of the system when the signature provided by the sender does not match any of the signatures within the message queue of the system, and transporting the task to a handler, including removing the task from the message queue and delivering the task to the handler for completion by the handler, where the handler intermediately commits to the task by cloning the task and inserting it into the message queue, and where if the task is successfully processed by the handler, the cloned task is discarded from the message queue.

21. A computer program product, comprising a non-transitory computer usable medium storing computer instructions capable of implementing a method for transporting a task to a handler, utilizing a queue, the method comprising:

receiving a task at a system from a sender;

identifying a signature provided by the sender;

comparing the signature provided by the sender to signatures within a message queue of the system;

returning the task to the sender when the signature provided by the sender matches a signature within the message queue of the system;

inserting the task, the signature, and a description of the task into the message queue of the system when the signature provided by the sender does not match any of the signatures within the message queue of the system, and transporting the task to a handler, including removing the task from the message queue and delivering the task to the handler for completion by the handler, where the handler intermediately commits to the task by cloning the task and inserting it into the message queue, and where if the task is successfully processed by the handler, the cloned task is discarded from the message queue.

22. A computer program product, comprising a non-transitory computer usable medium storing computer instructions capable of implementing a method for transporting a task to a handler, utilizing a queue, the method comprising:

receiving a task at a system from a sender;

identifying a signature provided by the sender;

comparing the signature provided by the sender to signatures within a message queue of the system;

returning the task to the sender when the signature provided by the sender matches a signature within the message queue of the system;

inserting the task, the signature, and an action to be performed on the task into the message queue of the system when the signature provided by the sender does not match any of the signatures within the message queue of the system, and transporting the task to a handler, including removing the task from the message queue and delivering the task to the handler for completion by the handler, where the handler intermediately commits to the task by cloning the task and inserting it into the message queue, and where if the task is successfully processed by the handler, the cloned task is discarded from the message queue.

Assignments (2)
CHANGE OF NAME Recorded Oct 24, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069270/0727 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2011
From: DEVADHAR, VIJAYANTH
To: SALESFORCE.COM, INC.
Reel/Frame 026436/0574 →