IP Library Granted Patent US 11,388,129
Granted Patent B1
US 11,388,129 · App. 17/026,759 · Granted Jul 12, 2022

Techniques for ephemeral messaging with a message queue

Inventors: Matthew Steiner (Los Altos, CA); Jeremy David Fein (New York, NY); Erik Murphy-Chutorian (Palo Alto, CA); Ting Yang (Princeton, NJ); Pierre-Luc Bertrand (New York, NY); Neil John Fulwiler (New York, NY)
Assignee: META PLATFORMS, INC.
H04L51/22H04L51/26H04L7/0337H04L47/622
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,388,129
App. No.
17/026,759
Granted
Jul 12, 2022
Kind
B1
Abstract

Techniques for ephemeral message are described. In one embodiment, an apparatus may comprise a delayed-action worker module operative to wake according to a wake timer; determine a current update object for a delayed-action cursor for a recipient update queue for a messaging system, the delayed-action cursor associated with an action delay for the recipient update queue; determine a delayed-action activity for the current update object; perform the delay-action activity for the current update object; determine a next update object for the delayed-action cursor for the recipient update queue; and determine a next wake timer for the delayed-action worker module based on the action delay and a creation time for the next update object. Other embodiments are described and claimed.

Claims (64)

1. A computer-implemented method comprising:

receiving an incoming update at a messaging server from a sending messaging client on a sending client device;

queuing the incoming update in an update queue on the messaging server, the update queue associated with a user of the sending messaging client, wherein the messaging server maintains a plurality of delay-action queues in addition to the update queue, each of the delay-action queues specifying a predetermined amount of delay associated with the respective delay-action queues;

periodically scanning chronologically forward through the update queue to discover a delay-action update having a delay-action indicator and a delay-action time indicating a delay from a creation time of the delay-action update when a delay-action indicated by the delay-action indicator is to be performed;

selecting one of the delay-action queues whose amount of delay corresponds to the delay-action time;

moving the delay-action update from the update queue to the selected delay-action queue while maintaining a chronological ordering of the selected delay-action queue based on the creation time of the delay-action update; and

setting a wake timer for a delay-action worker module specifying a wake time based on the creation time and the delay-action time.

2. The method of claim 1 :

wherein delay-action updates have a delay-action time selected from a predefined set of delay-action times; and

wherein the plurality of delay-action queues is limited in number to the number of delay-action times in the predefined set of delay-action times.

3. The method of claim 1 , further comprising:

waking the delay-action worker module upon expiration of the wake timer;

de-queueing a delay-action update at a head of one of the plurality of delay-action queues;

determining a delay-action associated with the de-queued delay-action update; and

performing the delay-action for the de-queued delay-action update.

4. The method of claim 3 further comprising: deleting the de-queued delay-action update.

5. The method of claim 1 wherein the delay-action indicator specifies a delay-action selected from a pre-defined set of delay-actions supported by the messaging server.

6. The method of claim 1 wherein each of the plurality of delay-action queues may only contain a maximum number of delay-action updates, further comprising:

delaying the moving of delay-action updates from the update queue to the one delay-

action queue until the number of delay-action updates in the one delay-action queue falls below the maximum number for that delay-action queue.

7. A non-transitory computer-readable medium comprising instructions that, when executed by a processor, cause a system to:

receive an incoming update at a messaging server from a sending messaging client on a sending client device;

queue the incoming update in an update queue on the messaging server, the update queue associated with a user of the sending messaging client, wherein the messaging server maintains a plurality of delay-action queues in addition to the update queue, each of the delay-action queues specifying a predetermined amount of delay associated with the respective delay-action queues;

periodically scan chronologically forward through the update queue to discover a delay-action update having a delay-action indicator and a delay-action time indicating a delay from a creation time of the delay-action update when a delay-action indicated by the delay-action indicator is to be performed;

select one of the delay-action queues whose amount of delay corresponds to the delay-action time;

move the delay-action update from the update queue to the selected delay-action queue while maintaining a chronological ordering of the selected delay-action queue based on the creation time of the delay-action update; and

set a wake timer for a delay-action worker module specifying a wake time based on the creation time and the delay-action time.

8. The medium of claim 7 :

wherein delay-action updates have a delay-action time selected from a predefined set of delay-action times; and

wherein the plurality of delay-action queues is limited in number to the number of delay-action times in the predefined set of delay-action times.

9. The medium of claim 7 , comprising further instructions causing the system to:

wake the delay-action worker module upon expiration of the wake timer;

de-queue a delay-action update at a head of one of the plurality of delay-action queues;

determine a delay-action associated with the de-queued delay-action update; and

perform the delay-action for the de-queued delay-action update.

10. The medium of claim 9 comprising further instructions causing the system to: delete the de-queued delay-action update.

11. The medium of claim 7 wherein the delay-action indicator specifies a delay-action selected from a pre-defined set of delay-actions supported by the messaging server.

12. The medium of claim 7 wherein each of the plurality of delay-action queues may only contain a maximum number of delay-action updates, comprising further instructions causing the system to:

delay the moving of delay-action updates from the update queue to the one delay-action

queue until the number of delay-action updates in the one delay-action queue falls below the maximum number for that delay-action queue.

13. The medium of claim 7 , further comprising spawning the delay-action update as a second update from the incoming update.

14. The medium of claim 7 , wherein the delay-action update is discovered no more than once during the periodic scanning of the update queue.

15. A system comprising:

a processor;

memory, coupled to the processor, the memory containing software that, when executed by the processor, cause the system to:

receive an incoming update at a messaging server from a sending messaging client on a sending client device;

queue the incoming update in an update queue on the messaging server, the update queue associated with a user of the sending messaging client, wherein the messaging server maintains a plurality of delay-action queues in addition to the update queue, each of the delay-action queues specifying a predetermined amount of delay associated with the respective delay-action queues;

periodically scan chronologically forward through the update queue to discover a delay-action update having a delay-action indicator and a delay-action time indicating a delay from a creation time of the delay-action update when a delay-action indicated by the delay-action indicator is to be performed;

select one of the delay-action queues whose amount of delay corresponds to the delay-action time;

move the delay-action update from the update queue to the selected delay-action queue while maintaining a chronological ordering of the selected delay-action queue based on the creation time of the delay-action update; and

set a wake timer for a delay-action worker module specifying a wake time based on the creation time and the delay-action time.

16. The system of claim 15 :

wherein delay-action updates have a delay-action time selected from a predefined set of delay-action times; and

wherein the plurality of delay-action queues is limited in number to the number of delay-action times in the predefined set of delay-action times.

17. The system of claim 15 , the software further causing the system to:

wake the delay-action worker module upon expiration of the wake timer;

de-queue a delay-action update at a head of one of the plurality of delay-action queues;

determine a delay-action associated with the de-queued delay-action update;

perform the delay-action for the de-queued delay-action update; and

delete the de-queued delay-action update.

18. The system of claim 15 wherein the delay-action indicator specifies a delay-action selected from a pre-defined set of delay-actions supported by the messaging server.

19. The system of claim 15 wherein each of the plurality of delay-action queues may only contain a maximum number of delay-action updates, the software further causing the system to:

delay the moving of delay-action updates from the update queue to the one delay-action

queue until the number of delay-action updates in the one delay-action queue falls below the maximum number for that delay-action queue.

Assignments (1)
CHANGE OF NAME Recorded Feb 9, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058981/0383 →
Continuity (2)
Continuation 16226966 · Dec 20, 2018
Continuation 14965632 · Dec 10, 2015