每日推荐通知

This commit is contained in:
18631081161 2026-03-02 21:09:35 +08:00
parent 85a3107a38
commit 30bf13e112
2 changed files with 11 additions and 4 deletions

View File

@ -79,12 +79,12 @@ public static class HangfireSetup
TimeZone = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time")
});
// 配置每日推荐通知任务 - 每天早上8-10点随机时间执行
// 使用8:30作为固定时间实际发送时会有随机延迟
// 配置每日推荐通知任务 - 每天早上8:00触发Job内部随机延迟0~120分钟
// 实际发送时间落在8:00~10:00之间
RecurringJob.AddOrUpdate<NotificationJob>(
"daily-recommend-notification",
job => job.SendDailyRecommendNotificationsAsync(),
"30 8 * * *",
"0 8 * * *",
new RecurringJobOptions
{
TimeZone = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time")

View File

@ -77,10 +77,17 @@ public class NotificationJob
/// <summary>
/// 每日推荐通知任务
/// 在早上8-10点随机时间向所有用户发送推荐通知
/// 在早上8~10点随机时间向所有用户发送推荐通知
/// 任务在8:00由Hangfire触发先随机延迟0~120分钟再逐个发送
/// </summary>
public async Task SendDailyRecommendNotificationsAsync()
{
// 随机延迟0~120分钟使实际发送时间落在8:00~10:00之间
var random = new Random();
var delayMinutes = random.Next(0, 121);
_logger.LogInformation("每日推荐通知任务将在 {DelayMinutes} 分钟后开始发送", delayMinutes);
await Task.Delay(TimeSpan.FromMinutes(delayMinutes));
_logger.LogInformation("开始执行每日推荐通知任务...");
var startTime = DateTime.Now;