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

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

[复制链接]

2

主题

75

回帖

870

积分

高级会员

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

2

主题

75

回帖

870

积分

高级会员

积分
870
金钱
730
贡献
63
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
+ h; W0 i% e6 @1 ]$ ]2 NUSE msdb;* Y1 P" c9 {7 U
GO
1 b4 m! u0 X) x' f( _3 Z1 `' D7 N4 d- c3 l
-- 如果作业已存在,则先删除它# C  c2 n5 t& Z7 X& H8 I( f* F: O/ Z
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
6 l: a0 ]- }# e( U  J/ y    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
* m2 x" {, B- MGO$ w9 ^1 N, S  ^! y0 t. v8 Q

0 c& s1 Q* S2 |9 A, z-- 创建新的作业
  U7 g2 l! Y. b& G1 UEXEC sp_add_job ! q. K2 w$ _7 R
    @job_name = N'IncreaseUserCashJob',               -- 作业名称5 X, u7 ]2 E$ U, @$ i9 p/ x
    @enabled = 1,                                    -- 启用作业6 C& X1 X$ \3 Z
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改: W% y* b  K5 h- y5 G0 T
    @notify_level_email = 0,                         -- 不发送电子邮件通知
' k% E5 ]5 p% s+ M    @notify_level_netsend = 0,                       -- 不发送网络消息通知
3 ?1 R+ K, f3 n% H    @notify_level_page = 0,                          -- 不发送寻呼通知
& T0 J& i9 \$ P# L    @delete_level = 0,                               -- 不自动删除作业
4 `# h, \% M% v1 q! u5 W3 B: \9 A    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
# g$ W5 ?7 M1 ?! f! R    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
- I5 s, E7 s4 f; t1 L  {    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
$ H+ T# C7 C. _    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
  _2 n- V, v' i* j! |GO$ f  e' [. P& s" Q
, O: r5 D3 H4 v1 E
-- 为作业添加一个步骤& Z& a2 B% F4 `4 \- H3 }
EXEC sp_add_jobstep 8 y9 B$ d( O) x1 i
    @job_name = N'IncreaseUserCashJob',              -- 作业名称* X& W  x8 y6 d* D
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称3 }4 x2 A! n2 ~7 s9 `
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
4 W, P5 B1 g9 \% T3 ^3 [    @database_name = N'account',                     -- 指定数据库名称1 i3 Z% C1 h- L: i
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
- ?; f# t& T/ ~    @retry_attempts = 5,                             -- 重试次数
/ F+ |' L% ]: {) \5 P    @retry_interval = 5;                             -- 重试间隔(分钟)5 l. Q  J/ k& ^8 w
GO! f" I0 i6 u5 W" C
6 G: c& P5 R: i# q) Y4 O9 ~. x' l
-- 为作业添加一个每分钟执行一次的调度( b3 L' K; y5 a* j$ H9 d; k; Z$ H
EXEC sp_add_schedule * T+ z( s6 y. d+ a; t" |5 T- B
    @schedule_name = N'MinuteSchedule',             -- 调度名称' z* h7 }9 `% y/ U1 }
    @freq_type = 4,                                  -- 频率类型(4表示每日)
( W" }' L1 C  Y' X2 N% p) _    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行/ ~, F! G( ~* ?% `
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)8 b) C/ E# V! g* f1 W
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
/ z4 i' K: B1 W& _* o8 Z0 |    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)5 N$ s: L* u2 X+ i  A5 E' p
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
& h* Z3 D& ~3 `4 ]* A% [    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
+ N6 o5 ?% ^0 x2 i5 v    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)7 U% g4 _) x# e; i/ b( ?" A' n
GO
) ~* b  c' c/ o$ i# z; C2 M3 V* M& ~0 G0 H9 Z5 F; L% z) C
-- 将作业与调度关联起来( ~+ r  ^7 T% [0 g: H
EXEC sp_attach_schedule ' p3 C, w: n; x  x6 g/ l4 o) H
    @job_name = N'IncreaseUserCashJob',              -- 作业名称+ B+ g$ ^( Z* v+ L1 ^9 J
    @schedule_name = N'MinuteSchedule';             -- 调度名称( Q: ]% n6 D8 f" I0 ], o
GO6 ?6 P7 [6 W$ x7 ^

' Z- k3 E& Q2 k-- 提交作业创建到SQL Server Agent
% W4 Z1 }8 z, A) k' zEXEC sp_add_jobserver 4 {: J$ ]/ @; y0 A0 m6 {2 u" f
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
+ }3 t* Z2 i' m( F    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
( V' t4 s, @) ?4 Y# M6 ?+ u5 fGO
( m! n5 t3 R6 H& v; |; f* G5 }# f& O3 h3 n
4 x4 r, v% B0 {6 P: h
2 {# V" D7 P) Y0 M# }$ n2 q; E) Q) Q- b
$ @5 X: c$ k0 I, D' A# ~2 j* F

2 m' c8 k: r. _3 E$ |6 {  Z
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-5-14 01:18 , Processed in 0.190117 second(s), 30 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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