Sql server 在sql server中,当用户在过去2小时内获得20个新关注者时,如何发送通知?
嗨,我是为UserFollowers创建存储过程的。现在,我想为用户追随者设置通知。在这个通知<强>当用户为过去的2个HORUS得到20个新的追随者,然后发送这种类型的通知<强> >“<强> ABC,XYZ和18个其他用户跟着你< /强>。”现在,作为我的逻辑在查询中只发送一个用户是跟随其他用户然后发送通知。因此,如何才能做到这一点,任何人都知道,请让我知道 这是我的查询=>Sql server 在sql server中,当用户在过去2小时内获得20个新关注者时,如何发送通知?,sql-server,Sql Server,嗨,我是为UserFollowers创建存储过程的。现在,我想为用户追随者设置通知。在这个通知当用户为过去的2个HORUS得到20个新的追随者,然后发送这种类型的通知 >“ ABC,XYZ和18个其他用户跟着你< /强>。”现在,作为我的逻辑在查询中只发送一个用户是跟随其他用户然后发送通知。因此,如何才能做到这一点,任何人都知道,请让我知道 这是我的查询=> DECLARE @FollowerId int, DECLARE @UserId int INSERT INT
DECLARE @FollowerId int,
DECLARE @UserId int
INSERT INTO UserFollowers
(
FollowerId,
UserId,
IsFollowed
)
VALUES
(
@FollowerId,
@UserId,
1
)
EXEC AddNotification @UserId, @FollowerId, 1, 'User Follow', null, null, null
SELECT @ActionUserName = UserName FROM Users WHERE UserId = @FollowerId
SELECT 'Followed'
SELECT REPLACE(ISNULL(NTL.NotificationText,NT.NotificationText), '##UserName##', @ActionUserName) AS NotificationText,
U.UserId,
U.UserName
FROM NotificationTexts NT
LEFT JOIN NotificationTextsByLanguage NTL ON NT.NotificationTextId = NTL.NotificationTextId
INNER JOIN Users U ON U.UserId = @UserId
INNER JOIN UserNotificationSetting UNS ON U.UserId = UNS.UserId
INNER JOIN NotificationTypes NTYPE ON NT.NotificationTypeId = NTYPE.NotificationTypeId
WHERE NT.NotificationTextId = 1 AND UNS.NotificationGroupTypeId = NTYPE.NotificationGroupTypeId
我当前的o/p为=>
我欠你的
我的预期o/p=>
abc、xyz和其他18位用户都在关注你
任何人如何使用此查询进行查询,请告诉我。我认为您需要在时间间隔后使用
WHILE 1=1
BEGIN
WAITFOR DELAY '02:00:00' -- Wait 2 hours
--Do check follower count here after time interval then notify
END
下面是如何在特定的时间间隔后运行存储过程
请参见此处,您需要在用户关注者表中添加时间戳列检查此处您是否尝试在while循环中等待延迟?不,我不尝试,请给我一些提示。您的意思是,此查询在这里等待最后2小时?此查询将在每2小时后触发。您是否在用户获得关注者时使用时间戳?以及在2小时后小时触发此查询,然后假设得到20个计数,然后此查询运行20次还是一次?现在,我在表中添加了一个时间戳列。在这里,您需要在user follower表中添加时间戳列,以便在这里进行间隔检查之前获取插入的记录