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

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

[复制链接]

2

主题

75

回帖

825

积分

高级会员

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

2

主题

75

回帖

825

积分

高级会员

积分
825
金钱
690
贡献
58
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
8 K8 g" A7 x4 T# ]9 \USE msdb;
: i4 a! o- W: v( L- B- Q* Y3 T3 dGO% f  z/ F, X9 y  A/ N9 I
1 V% h) K. G# ?* D- `( p
-- 如果作业已存在,则先删除它: ]$ B* {( q3 r; h, G
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
5 S, p. w, _5 [; }* M' [7 r    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
! O2 }, y' I5 x/ u6 s4 WGO
# P8 E' \# k( a8 U' d8 V* b1 c* {0 V1 x# u" |9 N- i
-- 创建新的作业' j' p! O3 ^3 o8 C- g  _4 f
EXEC sp_add_job
0 c9 ]$ D! W& X  v, [* [3 e' [    @job_name = N'IncreaseUserCashJob',               -- 作业名称
2 I0 {0 C; x  ?3 @8 s    @enabled = 1,                                    -- 启用作业
, `8 A7 d3 O* u, B* k7 p& Z& a    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改+ J6 Z, R. E" K/ ~) M! P
    @notify_level_email = 0,                         -- 不发送电子邮件通知
0 z% ^. v* @& J7 p    @notify_level_netsend = 0,                       -- 不发送网络消息通知
# D& M5 L8 U) P0 }    @notify_level_page = 0,                          -- 不发送寻呼通知
% A+ g  R. g* `7 H; b    @delete_level = 0,                               -- 不自动删除作业3 C$ \6 }# S5 @
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述' c+ T: g- i0 n
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
5 P5 {2 T% D4 v- a( p    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
% g5 d+ h- V' `, y3 s# b# q    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员7 t* Z  c! S7 ^2 G
GO
! b' k1 |" x9 T# t- b. k
) N: o; w% [# N3 O. w-- 为作业添加一个步骤
# M+ S2 Y( ]% v( yEXEC sp_add_jobstep
# {/ a" ]0 p- E    @job_name = N'IncreaseUserCashJob',              -- 作业名称
: l% |8 A. F6 w    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
( P7 Q0 b1 Q* f9 V7 N    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
( E& l: t" ]! }7 q' K" B" r! s    @database_name = N'account',                     -- 指定数据库名称0 h# Y- d" U# h4 J" [- j
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
! H6 i# }% G  s1 U( b; J8 {    @retry_attempts = 5,                             -- 重试次数* L) p! ]9 i# X( B; w
    @retry_interval = 5;                             -- 重试间隔(分钟); C7 s* h, F+ u' b( B  v4 H9 h9 k
GO, t5 c, m8 P4 [9 ?: {3 N

4 B0 [1 Q, b* E  l-- 为作业添加一个每分钟执行一次的调度
% t+ z1 B7 F' o2 z' k9 j8 AEXEC sp_add_schedule 2 _& V' j$ G6 a) Q
    @schedule_name = N'MinuteSchedule',             -- 调度名称
8 i6 p, L3 h3 K* F    @freq_type = 4,                                  -- 频率类型(4表示每日)) T: K* u: n2 O2 {% T
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
- p0 ^$ }* e( B* O+ T    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟); ]7 F4 X7 s, \1 _0 K2 \
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
: R5 @- ^8 Y7 d! K+ M  @% {4 c    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
6 I" I! A( L2 G* Z, ]; K/ W    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
& v; o  H/ C4 b+ r$ i    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)4 L& L1 {4 v* l" |% d4 j2 u
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
7 q* L6 [( h3 J; t% _GO
( e1 F' A' }5 P8 M* ^* I6 g. x5 p2 g/ j6 O* E8 _1 h
-- 将作业与调度关联起来
3 j, c( J+ e* E% k7 `/ ?/ Q0 TEXEC sp_attach_schedule
" p, e  v) T# P) \: }3 X+ r) g6 r    @job_name = N'IncreaseUserCashJob',              -- 作业名称$ f7 \0 D0 J$ r) v5 b" x' Z: _% p
    @schedule_name = N'MinuteSchedule';             -- 调度名称1 [0 c% B1 s- A( @1 R2 q; K, m- b
GO
/ p  O  C) T( E9 w; H/ N
5 t* i, m  s. E5 ]) m8 M) D-- 提交作业创建到SQL Server Agent
( K" Y8 j+ M; S' h1 ^  }7 tEXEC sp_add_jobserver ) S% e! N- w% B# X+ h
    @job_name = N'IncreaseUserCashJob',              -- 作业名称/ d" d; h- ~$ O- Q" E
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
/ i0 b. }7 C# Y' O; j* F) DGO
7 b4 i, o0 @9 Z% A/ Q) [: V) k. ^& v, s1 G& e* J8 o
! {5 O) J! M$ c: P5 r

. \/ C$ q# D. a" ]( M& A, o
% }% t3 ^  D/ R7 P$ R! ~# H
+ e* E/ `5 S- q$ V
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-1-1 13:42 , Processed in 0.239820 second(s), 28 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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