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

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

[复制链接]

2

主题

75

回帖

867

积分

高级会员

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

2

主题

75

回帖

867

积分

高级会员

积分
867
金钱
728
贡献
62
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------  W- k* u8 D6 p: C0 R+ A/ p
USE msdb;
7 m3 q6 l" Y/ z& g/ y! W' UGO
4 o( D/ B7 r; @+ L) C% k
* c$ u4 a  d( \" z: W4 I-- 如果作业已存在,则先删除它
: N; _3 H6 ^' j& g' g' C$ PIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
0 T& @0 d8 H; R! o- `    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
9 t1 j/ ^! [9 nGO4 C! l( U7 N/ C3 V. }) S7 K1 F
! ~. R- i7 u3 @6 P. l. O
-- 创建新的作业
! B  R* b& r9 V( N& s* g: h  tEXEC sp_add_job ! P  v7 q- i. V0 f: f+ ^) G
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
, q* I* D9 F+ E% A- x; _    @enabled = 1,                                    -- 启用作业2 ~6 e* a1 u# i. t: W; [! E
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改* U/ R3 Y. B+ W( z6 K
    @notify_level_email = 0,                         -- 不发送电子邮件通知8 b0 @$ D  Q# p- T/ Z9 L
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
8 {! R# f' w7 K( ~! s" B' _    @notify_level_page = 0,                          -- 不发送寻呼通知
7 O; t9 r. A; n    @delete_level = 0,                               -- 不自动删除作业
8 m. w2 c8 j& N4 F    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述8 a% Z. ^+ k- U9 |8 S% d
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
, J+ i$ M* O% i1 W: y+ y    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
! s+ M( Q' ~% I! Z* i' S' W( k% H    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
' x4 k6 Q, U! a/ B2 FGO1 T2 m+ y4 m  K% r! q7 o

7 d$ }  E) {! J4 q2 B) h! r-- 为作业添加一个步骤" `8 W9 k0 N5 z+ k) S5 v
EXEC sp_add_jobstep
; ]4 y1 H; `. A4 {' b! x, [    @job_name = N'IncreaseUserCashJob',              -- 作业名称
8 T) x1 f1 g' {3 \% ~/ p    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称8 g* n* r9 @; [3 }5 U
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)8 c) `  e( z# x
    @database_name = N'account',                     -- 指定数据库名称2 X& r2 u4 o' `( \6 y
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)' n9 x1 k( s8 f- r
    @retry_attempts = 5,                             -- 重试次数
/ H, |1 F: C2 j% u, ?* t    @retry_interval = 5;                             -- 重试间隔(分钟)
6 W/ {: w" J4 ~  `GO! x& U* @& Z: v3 B+ Q$ O

* t- f" B  ^" g% J2 E: n-- 为作业添加一个每分钟执行一次的调度  \2 q" a( n9 {3 j+ ^8 l7 O/ Y. e' V
EXEC sp_add_schedule 6 K9 R- o% d1 N7 p, ^
    @schedule_name = N'MinuteSchedule',             -- 调度名称
2 y  C4 `7 T  j( ^( [/ |; q    @freq_type = 4,                                  -- 频率类型(4表示每日)
- a9 O; K' S- K( J, b    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
" p1 l5 {7 a( L    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)  {% T8 I4 v( d, ?* _# E+ l
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
% `1 s7 F9 v( e. b7 ]) O    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
: O- e/ o% }8 n4 V    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
7 Z( \. d. C* Q4 O6 e* K    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)) x- V* I# N/ w' M/ n4 u
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)0 c7 A6 h' W, q5 F
GO' w+ U. E; J" T6 d4 z
1 t7 P/ a& b) R$ b, R6 W* w4 y: Q
-- 将作业与调度关联起来
& U: i  W% t1 o5 n$ T- X8 OEXEC sp_attach_schedule . `( P- D) h& r9 ?9 v
    @job_name = N'IncreaseUserCashJob',              -- 作业名称- q: X$ A; y3 v- d1 W
    @schedule_name = N'MinuteSchedule';             -- 调度名称
+ x" b/ O7 [0 L  X$ A: uGO
5 d' b* \: i2 ]! n0 E; k& ~! H( b
5 I' e  q! n( ^. h-- 提交作业创建到SQL Server Agent
! ^! Y! e; h( A0 Q) X) r2 q$ SEXEC sp_add_jobserver % _; D& M( ?) C2 R" o6 ?$ v
    @job_name = N'IncreaseUserCashJob',              -- 作业名称8 ]8 k1 k: v; i+ C* J6 r1 ^& \2 b- l. M
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
/ a6 ^3 V+ ]( m8 nGO
4 X& C0 ]6 Y9 `8 @9 M3 S1 t3 k6 ^. f) M# l
5 S+ e: S* T5 p, x, j
+ b' q2 n) J8 v

+ Y, _; e' `5 s5 c! w. e# `# ]
7 T$ y9 Q+ q7 v! y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-2-19 08:35 , Processed in 0.048301 second(s), 27 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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