找回密码
 立即注册
查看: 3335|回复: 1

[技术文章] 泡点每分钟增加1商城币并实时更新商城点数,13职业端测试可用,其他未测试

[复制链接]

2

主题

75

回帖

883

积分

高级会员

积分
883
金钱
742
贡献
64
注册时间
2024-9-13
发表于 2025-1-18 17:03:06 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 贡献 才能浏览

2

主题

75

回帖

883

积分

高级会员

积分
883
金钱
742
贡献
64
注册时间
2024-9-13
发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------0 ?# K8 o8 ~2 b; y, T
USE msdb;! g* ?( L( W: k4 c
GO. U0 w: ]3 E1 B% J1 W: O

9 b, |. X; p$ a+ q9 c4 \; K) k-- 如果作业已存在,则先删除它
  `% x, h+ Z5 e4 `, G. s1 q/ `( kIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')$ p7 N) E3 p+ }. |0 S
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
/ N' p4 ^. F& t$ K) C  U' AGO
) r9 n0 x$ D/ `
. T* G2 W# z8 B7 N3 T-- 创建新的作业
$ Z' n( r6 n2 m7 E& ^EXEC sp_add_job
# a" X& t( R) f4 W, p# N) p7 ]    @job_name = N'IncreaseUserCashJob',               -- 作业名称
. s# m6 h- N" x, {7 o6 h    @enabled = 1,                                    -- 启用作业0 Z# q) O5 E2 q2 V! |1 F. m
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
1 g4 H0 Y( i% J. X/ k8 c  ^    @notify_level_email = 0,                         -- 不发送电子邮件通知
: f0 d* z  W2 D4 v% @7 t9 N+ P    @notify_level_netsend = 0,                       -- 不发送网络消息通知
; L& Z! [9 k* @9 z5 Y( o; ]( Y0 s    @notify_level_page = 0,                          -- 不发送寻呼通知
2 Q, y9 G8 X: G, w    @delete_level = 0,                               -- 不自动删除作业
& ~* j+ m9 I7 U- l5 G    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述3 p4 R8 n3 W1 S; T+ N0 j9 Z
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别7 |4 e1 G7 W. b' c1 h" z
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
  f# Y+ B( H) Z8 G% ^8 L) N    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
* q- q8 s- |3 o; y% j( Z' N# _GO
9 H9 Y3 a7 Z" F' D
1 x! ]3 e8 c( |- o# G' Y% J% v-- 为作业添加一个步骤
: z  K# g/ N% r# C( T- |EXEC sp_add_jobstep $ L$ r0 H! p3 U0 }
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
( Y' p) j5 y, r; L4 H    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称4 |: O; H0 g) h; x5 ?
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
7 w( R- Y4 B- t  m8 G1 b( C    @database_name = N'account',                     -- 指定数据库名称
5 n" C! V- N, l3 P; E1 C, Q    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)0 @, ^2 U' V% l$ O) i
    @retry_attempts = 5,                             -- 重试次数
7 J6 C0 i5 ~/ |9 R7 l0 F0 L    @retry_interval = 5;                             -- 重试间隔(分钟)
% P3 q& y  |% W9 r8 {GO/ m* e5 _# U1 r: s

& r5 q7 k5 Q  T' G  R# Z-- 为作业添加一个每分钟执行一次的调度
3 ]7 a: g) f5 }7 EEXEC sp_add_schedule , Q2 q2 u. F; R3 f
    @schedule_name = N'MinuteSchedule',             -- 调度名称
/ i+ N( V2 t+ b    @freq_type = 4,                                  -- 频率类型(4表示每日)" Y! I, o* L8 J6 p0 g
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
. V. {9 G# p6 Z6 L0 g    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
! \/ t  U5 F! M2 d, k: ?3 R    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)4 A" p( I3 `  q. q
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)5 r  G; `3 u+ Z! c; Q" P
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
% ?2 l9 G% V( A+ u8 ?0 f    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)6 S( E7 q: b' ?8 a" b3 h5 k
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)$ g: P  Z) D/ q6 i- p  [
GO( w6 j: F. m! p+ i% q" ^) G
1 n2 X6 U+ R9 l5 W/ T
-- 将作业与调度关联起来; W; F6 r; d: \" b: f
EXEC sp_attach_schedule
5 k* Q) j# ?  a2 O    @job_name = N'IncreaseUserCashJob',              -- 作业名称
' T( @0 Y) O: I; N    @schedule_name = N'MinuteSchedule';             -- 调度名称
) u; w! I5 F$ G  IGO
) h3 `: F; ~8 z- [
+ w2 `7 k! D2 y/ f-- 提交作业创建到SQL Server Agent# H2 e  l9 H8 W, B  f
EXEC sp_add_jobserver
' E6 u" p. Y& ^0 B    @job_name = N'IncreaseUserCashJob',              -- 作业名称5 r& S+ h1 i- w3 N
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')  x/ M# w8 m- L) M# L
GO
; a, M3 Z: F3 _, h( ]$ l" z( _+ `2 I1 ^& `2 S
4 r8 y0 h2 ?. I- G8 a4 O
; X- ?0 a( T  n. U+ _) t0 `
0 |+ E& d  x4 x  P" I0 G* u6 Y
: f) L9 S. y7 g9 e3 @! O5 m) K
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-9-22 21:00 , Processed in 0.062378 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表