Table of Contents
Context
Architectural issues
Home Backend Development Golang Use Redis to send messages to users once a day via FCM based on their changing time preferences to avoid duplication

Use Redis to send messages to users once a day via FCM based on their changing time preferences to avoid duplication

Feb 06, 2024 am 09:00 AM
mobile application

使用 Redis,根据用户不断变化的时间偏好,通过 FCM 每天向用户发送一次消息,避免重复

Question content

Context

I have many posts and the upvote and downvote count for each post is stored in my Postgres database. I'm running a Gin Golang server, Flutter mobile app, and sending notifications to users using FCM (Firebase Cloud Messaging).

Architectural issues

First of all, this problem is easy to solve. I just don't know how to effectively solve it.

I would like to send the top voted posts to each user approximately once a day. However, I want to send notifications to users based on the time they are most active in the app (not all at once, i.e. not just 12am every day).

So, let's say I'm tracking an entry for each user in a table called active_times, which entry has a time value that I base on their relationship with a mobile app like time# in Postgres ##) Fields updated during interaction. I am constantly updating based on user activity.

My gut tells me that I should run a cron job in my server every ~2 hours that queries for all users who have a

time field within that ~2 hour window. I then send pinned post notifications to these users. I then save a set of hashes in the Redis cache mapping user_ids to time_notification_recieveds and set the auto-expiration to about 12 hours. For each subsequent query, I first check the if user_id in Redis, don't send to that user, otherwise, send and add the id to Redis.

This would allow me to have a window where if the user suddenly logs in or interacts directly on the app after the notification is sent to them (moving their activity to

time), they will be logged in up to 12 Notifications are received later in the hour, but are usually sent approximately every 24 hours (daily) since their activity window does not change much. For example this is as opposed to their time window being 2pm and then after I send them a notification it updates to 4pm and they get hit again within 2 hours.

Remark

Is this an efficient approach? I initially considered using a Postgres database to store all these IDs, but I thought this might quickly overwhelm the database.

Also, is Redis used to do this kind of thing? Is there a completely different approach I can take to do this?

Thanks!


Correct Answer


Until you have millions of users, anything you do every few hours will be very efficient.

I would have a separate column (for example) in the user table that contains "Next Notification Time" for scheduling notifications. I guess you don't want to be in a situation where a user is using the system and then immediately gets a notification, right?

To determine when notifications are sent, you can use a table with a mini activity histogram; something like that

    User ID
  • Time of day
  • counter
Then the counter is incremented every time the user performs an "activity". Then, when calculating "Next time to send notification", you can look at this table to find the best time for that particular user. Over time you can improve the algorithm so that it becomes more complex than just activity counting. (Maybe you want to be notified an hour before the user is typically active? Or maybe a time when they sometimes use the app but aren't used to it, etc.)

The above is the detailed content of Use Redis to send messages to users once a day via FCM based on their changing time preferences to avoid duplication. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1666
14
PHP Tutorial
1273
29
C# Tutorial
1253
24
How to download okx trading platform How to download okx trading platform Mar 26, 2025 pm 05:18 PM

The OKX trading platform can be downloaded through mobile devices (Android and iOS) and computers (Windows and macOS). 1. Android users can download it from the official website or Google Play, and they need to pay attention to security settings. 2. iOS users can download it through the App Store or follow the official announcement to obtain other methods. 3. Computer users can download the client of the corresponding system from the official website. Always make sure to use official channels when downloading, and register, log in and security settings after installation.

Coinbase Exchange Login Port 2025 Coinbase Exchange Login Port 2025 Mar 21, 2025 pm 05:51 PM

Coinbase Security Login Guide: How to Avoid Phishing Sites and Scams? Phishing and scams are becoming increasingly rampant, and it is crucial to securely access the Coinbase official login portal. This article provides practical guides to help users securely find and use the latest official login portal of Coinbase to protect the security of digital assets. We will cover how to identify phishing sites, and how to log in securely through official websites, mobile apps or trusted third-party platforms, and provide suggestions for enhancing account security, such as using a strong password and enabling two-factor verification. To avoid asset losses due to incorrect login, be sure to read this article carefully!

Top 10 Currency Trading Platforms in 2025 Digital Currency Trading App List Top 10 Top 10 Currency Trading Platforms in 2025 Digital Currency Trading App List Top 10 Mar 05, 2025 pm 08:06 PM

In the rapidly growing cryptocurrency market, choosing the right trading platform is crucial. This article introduces the top ten most recommended currency trading platforms in the world, including Binance, OKX, Gate.io, Coinbase, FTX, Huobi Global, Bybit, KuCoin, Phemex and Kraken. These platforms are known for their wide range of trading pairs, liquidity, functionality and security measures, meeting the needs of everything from beginners to professional traders.

What is the C# programming language? What is the C# programming language? Apr 03, 2025 pm 04:15 PM

Originally known as Cool, C# was invented by Anders Hejlsberg of Microsoft and launched in July 2000. C# is designed from scratch and is suitable for managed and embedded systems. For example, C# can run both on desktop computers and on IoT developers

Top exchange ranking Top exchange ranking Mar 14, 2025 pm 06:03 PM

Based on eight dimensions of security, liquidity, transaction fees, user experience, currency selection, trading functions, reputation and innovation capabilities, this article deeply analyzes the world's leading cryptocurrency exchanges, and selects the top 3 rankings of Binance, Ouyi and Sesame Open. The ranking takes into account factors such as the exchange's trading volume, trading product diversity, user friendliness, as well as security and regulatory compliance. The article will analyze the advantages and disadvantages of each exchange in detail, and provide selection advice for different types of investors (novice, professional traders, etc.) to help you choose the most suitable cryptocurrency trading platform. Please note that cryptocurrency investment is high in risk. This article is for reference only and does not constitute investment advice.

Can you view large XML files on your phone? Can you view large XML files on your phone? Apr 02, 2025 pm 10:48 PM

Yes, large XML files can be viewed through mobile applications. These applications provide syntax highlighting, code block collapsing, search capabilities, and tree views. Recommended applications include: 1. XML Viewer (Android and iOS); 2. XML Editor & Viewer (Android); 3. Code Editor - Viewer (Android); 4. Notepad (iOS). It may take a long time to view large XML files.

Top 10 trading platforms in the currency circle, the latest list of digital currency app trading software in the currency circle Top 10 trading platforms in the currency circle, the latest list of digital currency app trading software in the currency circle Mar 21, 2025 pm 02:45 PM

Ranking of the top ten trading platforms in the currency circle: 1. OKX, 2. Binance, 3. Gate.io, 4. Coinbase, 5. Kraken, 6. Huobi, 7. KuCoin, 8. Crypto.com, 9. Bitfinex, 10. Gemini. When choosing an exchange, you need to consider security, fees, currency selection, user experience, customer support and supervision, and you need to be cautious when investing.

Ouyi okx official entrance address Ouyi official link Ouyi okx official entrance address Ouyi official link Mar 21, 2025 pm 06:09 PM

In digital currency transactions, security is crucial. Due to the prevalence of phishing, it is crucial to find Ouyi OKX official entrance address and official links. Incorrect links can lead to account theft, asset loss and identity theft. This article will provide a comprehensive guide to secure access to the Ouyi OKX official platform, helping users identify and avoid phishing websites and protecting the security of digital assets. We will introduce how to confirm the official portal of Ouyi OKX through official websites, official applications, official social media accounts and other trusted channels, and provide important security tips, such as avoiding unknown links, using strong passwords and enabling two-factor verification, to ensure your transactions are safe and reliable.

See all articles