IP Library Granted Patent US 10,893,015
Granted Patent B2
US 10,893,015 · App. 16/424,632 · Granted Jan 12, 2021

Priority topic messaging

Inventor: Stephen Dale Garvey (Alpharetta, GA)
Assignee: ADP, LLC
H04L51/26G06F9/546H04L51/046H04L67/26G06Q10/105
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 10,893,015
App. No.
16/424,632
Granted
Jan 12, 2021
Kind
B2
Abstract

Aspects subscribe consumer message threads to each of a plurality of topics including a high-priority topic and a different, low-priority topic; initialize both the high-priority and low-priority topics as not-paused; poll for an unread message from not-paused ones of the high-priority and low-priority topics; in response to a return of an unread message from polling the not-paused ones of the high-priority and low-priority topics, pause the low-priority topic and process the returned unread message; and, until determining that no new message is returned, iteratively repoll for new unread messages from not-paused ones of the high-priority and low-priority topics and process any new unread messages returned from each repolling, wherein the low-priority topic is paused during each repolling executed prior to determining that no new message is returned from the repolling.

Claims (86)

1. A computer-implemented method, comprising:

subscribing a plurality of consumer message threads to each of a plurality of topics comprising a high-priority topic and a low-priority topic, wherein the low-priority topic is different from the high-priority topic;

initializing the high-priority topic and the low-priority topic as not-paused;

polling for an unread message from not-paused ones of the high-priority topic and the low-priority topic;

in response to a return of an unread message from the polling for an unread message from not-paused ones of the high-priority topic and the low-priority topic, pausing the low-priority topic and processing the returned unread message;

until determining that no new message is returned, iteratively repolling for new unread messages from not-paused ones of the high-priority topic and the low-priority topic and processing any new unread messages returned from each repolling, wherein the low-priority topic is paused during each repolling executed prior to determining that no new message is returned from the repolling;

in response determining that no new message is returned from a repolling of the iterative repolling, un-pausing the paused low-priority topic; and

polling for another unread message from the not-paused high-priority topic and the un-paused low-priority topic.

2. The method of claim 1 , further comprising:

in response to a return of another unread message from the polling for another unread message from the not-paused high-priority topic and the un-paused low-priority topic:

re-pausing the un-paused low-priority topic;

processing the returned another unread message; and

until determining that no new message is returned, iteratively repolling for new unread messages from not-paused ones of the high-priority topic and the low-priority topic and processing any new unread messages returned from each repolling, wherein the low-priority topic is re-paused during each repolling executed prior to determining that no new message is returned from the repolling.

3. The method of claim 2 , further comprising:

defining the high priority topic to comprise a message from a customer user via a login activity that requests a service and requires at least one of a profile rebuild for the customer and a permission refresh for the customer; and

defining the low priority topic to comprise messages that are not from the customer user via a login activity.

4. The method of claim 3 , wherein the plurality of consumer message threads are defined within a KAFKA messaging queue system, the method further comprising:

subscribing the plurality of consumer message threads to each of the plurality of topics via a representational state transfer KAFKA consumer subscribe application programming interface call;

polling for the unread message from the not-paused ones of the high-priority topic and the low-priority topic via a representational state transfer KAFKA consumer poll application programming interface call;

pausing the low-priority topic via a representational state transfer KAFKA consumer pause application programming interface call; and

unpausing the low-priority topic via a representational state transfer KAFKA consumer resume application programming interface call.

5. The method of claim 4 , wherein at least one of the pausing and the re-pausing of the low-priority topic comprises:

getting current thread topic partition assignments;

iteratively looping through the current topic partition assignments and extracting low priority topic partitions from the current thread topic partition assignments;

pausing the extracted low priority topic partitions; and

saving the paused extracted low priority topic partitions to a list; and

wherein the listed extracted low priority topic partitions are paused during the iteratively repolling for new unread messages.

6. The method of claim 5 further comprising:

getting current thread topic partition assignments via a representational state transfer KAFKA consumer assignment application programming interface call.

7. The method of claim 1 , further comprising:

integrating computer-readable program code into a computer system comprising a processor, a computer-readable memory in circuit communication with the processor, and a computer-readable storage medium in circuit communication with the processor; and

wherein the processor executes program code instructions stored on the computer-readable storage medium via the computer-readable memory and thereby performs the subscribing the plurality of consumer message threads to each of the plurality of topics comprising the high-priority topic and the low-priority topic, the initializing the high-priority topic and the low-priority topic as not-paused, the polling for the unread message from not-paused ones of the high-priority topic and the low-priority topic, the pausing the low-priority topic and processing the returned unread message in response to the return of the unread message from the polling for the unread message from the not-paused ones of the high-priority topic and the low-priority topic, the iteratively repolling for new unread messages from not-paused ones of the high-priority topic and the low-priority topic and the processing any new unread messages returned from each repolling until determining that no new message is returned, the un-pausing the paused low-priority topic, and the polling for another unread message from the not-paused high-priority topic and the un-paused low-priority topic.

8. The method of claim 7 , wherein the computer-readable program code is provided as a service in a cloud environment.

9. A system, comprising:

a processor;

a computer-readable memory in circuit communication with the processor;

a computer-readable storage medium in circuit communication with the processor; and

wherein the processor executes program instructions stored on the computer-readable storage medium via the computer-readable memory and thereby:

subscribes a plurality of consumer message threads to each of a plurality of topics comprising a high-priority topic and a low-priority topic, wherein the low-priority topic is different from the high-priority topic;

initializes the high-priority topic and the low-priority topic as not-paused;

polls for an unread message from not-paused ones of the high-priority topic and the low-priority topic;

in response to a return of an unread message from polling for an unread message from not-paused ones of the high-priority topic and the low-priority topic, pauses the low-priority topic and processes the returned unread message; and

until determining that no new message is returned, iteratively repolls for new unread messages from not-paused ones of the high-priority topic and the low-priority topic and processes any new unread messages returned from each repolling, wherein the low-priority topic is paused during each repolling executed prior to determining that no new message is returned from the repolling;

un-pauses the paused low-priority topic in response determining that no new message is returned from a repolling of the iterative repolling; and

polls for another unread message from the not-paused high-priority topic and the un-paused low-priority topic.

10. The system of claim 9 , wherein the processor executes the program instructions stored on the computer-readable storage medium via the computer-readable memory and thereby:

in response to a return of another unread message from polling for another unread message from the not-paused high-priority topic and the un-paused low-priority topic:

re-pauses the un-paused low-priority topic;

processes the returned another unread message; and

until determining that no new message is returned, iteratively repolls for new unread messages from not-paused ones of the high-priority topic and the low-priority topic and processes any new unread messages returned from each repolling, wherein the low-priority topic is re-paused during each repolling executed prior to determining that no new message is returned from the repolling.

11. The system of claim 10 , wherein the processor executes the program instructions stored on the computer-readable storage medium via the computer-readable memory and thereby:

defines the high priority topic to comprise a message from a customer user via a login activity that requests a service and requires at least one of a profile rebuild for the customer and a permission refresh for the customer; and

defines the low priority topic to comprise messages that are not from the customer user via a login activity.

12. The system of claim 11 , wherein the plurality of consumer message threads are defined within a KAFKA messaging queue system, and wherein the processor executes the program instructions stored on the computer-readable storage medium via the computer-readable memory and thereby:

subscribes the plurality of consumer message threads to each of the plurality of topics via a representational state transfer KAFKA consumer subscribe application programming interface call;

polls for the unread message from the not-paused ones of the high-priority topic and the low-priority topic via a representational state transfer KAFKA consumer poll application programming interface call;

pauses the low-priority topic via a representational state transfer KAFKA consumer pause application programming interface call; and

un-pauses the low-priority topic via a representational state transfer KAFKA consumer resume application programming interface call.

13. The system of claim 12 , wherein the processor executes the program instructions stored on the computer-readable storage medium via the computer-readable memory and thereby, pauses or re-pauses the low-priority topic by:

getting current thread topic partition assignments;

iteratively looping through the current topic partition assignments and extracting low priority topic partitions from the current thread topic partition assignments;

pausing the extracted low priority topic partitions; and

saving the paused extracted low priority topic partitions to a list; and

wherein the listed extracted low priority topic partitions are paused during the iteratively repolling for new unread messages.

14. A computer program product, comprising:

a computer-readable storage medium having computer-readable program code embodied therewith, wherein the computer-readable storage medium is not a transitory signal per se, the computer-readable program code comprising instructions for execution by a processor that cause the processor to:

subscribe a plurality of consumer message threads to each of a plurality of topics comprising a high-priority topic and a low-priority topic, wherein the low-priority topic is different from the high-priority topic;

initialize the high-priority topic and the low-priority topic as not-paused;

poll for an unread message from not-paused ones of the high-priority topic and the low-priority topic;

in response to a return of an unread message from polling for an unread message from not-paused ones of the high-priority topic and the low-priority topic, pause the low-priority topic and process the returned unread message; and

until determining that no new message is returned, iteratively repoll for new unread messages from not-paused ones of the high-priority topic and the low-priority topic and process any new unread messages returned from each repolling, wherein the low-priority topic is paused during each repolling executed prior to determining that no new message is returned from the repolling;

un-pause the paused low-priority topic in response determining that no new message is returned from a repolling of the iterative repolling; and

poll for another unread message from the not-paused high-priority topic and the un-paused low-priority topic.

15. The computer program product of claim 14 , wherein the computer-readable program code instructions for execution by the processor further cause the processor to:

in response to a return of another unread message from polling for another unread message from the not-paused high-priority topic and the un-paused low-priority topic:

re-pause the un-paused low-priority topic;

process the returned another unread message; and

until determining that no new message is returned, iteratively repoll for new unread messages from not-paused ones of the high-priority topic and the low-priority topic and process any new unread messages returned from each repolling, wherein the low-priority topic is re-paused during each repolling executed prior to determining that no new message is returned from the repolling.

16. The computer program product of claim 15 , wherein the computer-readable program code instructions for execution by the processor further cause the processor to:

define the high priority topic to comprise a message from a customer user via a login activity that requests a service and requires at least one of a profile rebuild for the customer and a permission refresh for the customer; and

define the low priority topic to comprise messages that are not from the customer user via a login activity.

17. The computer program product of claim 16 , wherein the plurality of consumer message threads are defined within a KAFKA messaging queue system, and wherein the computer-readable program code instructions for execution by the processor further cause the processor to:

subscribe the plurality of consumer message threads to each of the plurality of topics via a representational state transfer KAFKA consumer subscribe application programming interface call;

poll for the unread message from the not-paused ones of the high-priority topic and the low-priority topic via a representational state transfer KAFKA consumer poll application programming interface call;

pause the low-priority topic via a representational state transfer KAFKA consumer pause application programming interface call; and

un-pause the low-priority topic via a representational state transfer KAFKA consumer resume application programming interface call.

Assignments (2)
CHANGE OF NAME Recorded Feb 4, 2022
From: ADP, LLC
To: ADP, INC.
Reel/Frame 058959/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2019
From: GARVEY, STEPHEN DALE
To: ADP, LLC
Reel/Frame 049301/0836 →