添加项目文件。

This commit is contained in:
2026-10-12 16:22:04 +08:00
parent 7c68a0ca0a
commit aad11be43d
1000 changed files with 120807 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
using Microsoft.Extensions.Logging;
using RedisHelper;
using ScheduledService;
using UserService.User;
namespace UserService.Jobs;
public class EveryDayTask : CronJobService
{
private readonly IUserService _userService;
private readonly IDistributedLock _distributedLock;
private const string LockKey = "lock:everyday";
public EveryDayTask(IScheduleConfig<EveryDayTask> config, IUserService userService, IDistributedLock distributedLock)
: base(config.CronExpression, config.TimeZoneInfo)
{
_userService = userService;
_distributedLock = distributedLock;
}
public override Task StartAsync(CancellationToken cancellationToken)
{
return base.StartAsync(cancellationToken);
}
public override async Task DoWork(CancellationToken cancellationToken)
{
await _distributedLock.TryExecuteAsync(LockKey, async () =>
{
await _userService.EveryDayTask();
}, expiry: 600);
}
public override Task StopAsync(CancellationToken cancellationToken)
{
return base.StopAsync(cancellationToken);
}
}
+33
View File
@@ -0,0 +1,33 @@
using Microsoft.Extensions.Logging;
using RedisHelper;
using ScheduledService;
using UserService.User;
namespace UserService.Jobs;
public class EveryHourTask : CronJobService
{
private readonly IUserService _userService;
private readonly IDistributedLock _distributedLock;
private const string LockKey = "lock:everyhour";
public EveryHourTask(
IScheduleConfig<EveryHourTask> config,
IUserService userService,
IDistributedLock distributedLock)
: base(config.CronExpression, config.TimeZoneInfo)
{
_userService = userService;
_distributedLock = distributedLock;
}
public override async Task DoWork(CancellationToken cancellationToken)
{
await _distributedLock.TryExecuteAsync(LockKey, async () =>
{
await _userService.EveryHourTask();
}, expiry: 300);
}
}
@@ -0,0 +1,33 @@
using Microsoft.Extensions.Logging;
using RedisHelper;
using ScheduledService;
using UserService.User;
namespace UserService.Jobs;
public class RankingRewardJob : CronJobService
{
private readonly IUserService _userService;
private readonly IDistributedLock _distributedLock;
private const string LockKey = "lock:rankingreward";
public RankingRewardJob(
IScheduleConfig<RankingRewardJob> config,
IUserService userService,
IDistributedLock distributedLock)
: base(config.CronExpression, config.TimeZoneInfo)
{
_userService = userService;
_distributedLock = distributedLock;
}
public override async Task DoWork(CancellationToken cancellationToken)
{
await _distributedLock.TryExecuteAsync(LockKey, async () =>
{
await _userService.DailyRankingReward();
}, expiry: 600);
}
}