找回密码
 立即注册
查看: 2158|回复: 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作业计划每分钟运行一次-----------------------
- C* K7 U+ A' R' K% |' tUSE msdb;
/ b) P# A( Q, l6 [1 u( x& jGO! d" }$ U0 `, ]4 {: g* P# j. F" m

0 b. O! U2 @( a; O-- 如果作业已存在,则先删除它
, P6 e! D& y* i2 _3 p5 LIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')# M/ q% g7 w% k8 ^- g
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';8 {" K, s# ?) R- j" d4 M: u
GO+ _& f( b; F' V" X

: u# B3 h* |" w; Y-- 创建新的作业6 h  q5 M9 C) k( X
EXEC sp_add_job
% ]1 k* P% p  b+ H2 y    @job_name = N'IncreaseUserCashJob',               -- 作业名称
% d  D/ h& p& q7 B. T1 c7 o" w    @enabled = 1,                                    -- 启用作业4 r0 s, q0 ]' Y! S
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改, m! L: l  g% `8 J2 L" w6 ^
    @notify_level_email = 0,                         -- 不发送电子邮件通知
8 m: M$ T9 w1 x* A+ v. n1 @    @notify_level_netsend = 0,                       -- 不发送网络消息通知
* S, ?* T% {% d) v( t8 L. d1 @/ {9 H    @notify_level_page = 0,                          -- 不发送寻呼通知7 ?7 U8 o! B  O
    @delete_level = 0,                               -- 不自动删除作业8 N8 Z7 U7 \* B/ G
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述4 A! u! ~6 e8 u& k6 b0 R
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
0 P- n* w4 i3 B$ ?" V    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
' b! z+ y' q) c+ \  @9 _    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
  U6 o( e# n. ~( G4 CGO
$ z1 @$ D: g% `* J$ r5 @# h
. i. S0 Q# H) b" o: ~-- 为作业添加一个步骤
6 g+ U" i" `1 F! ?5 I: M1 bEXEC sp_add_jobstep 8 Y6 A$ o% ^. S" u* Q% R- A' N
    @job_name = N'IncreaseUserCashJob',              -- 作业名称" I* F8 T2 L+ \4 E
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称! g3 G' L0 [! g, R
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
! h' v" _" d+ i! v4 G    @database_name = N'account',                     -- 指定数据库名称1 p7 U  }0 C7 ^3 K( Q5 r
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程). G. b3 T. L2 F' M$ K- M, O' B
    @retry_attempts = 5,                             -- 重试次数
! p2 v& |: k% g! V6 R    @retry_interval = 5;                             -- 重试间隔(分钟)
$ k/ ?& u" P: B4 {( wGO
4 c, C" O9 E% ~9 h& e8 ]* D( h
) G' Y) l3 _( n# c" i* M+ U-- 为作业添加一个每分钟执行一次的调度
+ U6 @# O4 H+ gEXEC sp_add_schedule
/ |( @3 Q  r; B2 I6 P1 f, K9 S6 L; R    @schedule_name = N'MinuteSchedule',             -- 调度名称! d, R+ e( S: L& q* P/ U, o& C
    @freq_type = 4,                                  -- 频率类型(4表示每日), Q3 \% {9 _- Y/ Z- O! O
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行4 y4 w( c  S4 X! [, |
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)$ \4 P4 U! j0 c3 L" ]
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次), W4 t2 l0 {5 K& l6 |5 _
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
  X; z3 p, t5 g0 d: T/ m( |7 Y5 j: Y- _    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)' V& w; l1 ~: ]9 G& }
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期): \& D2 m: X, g5 T7 D2 m/ \# d
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
) p. d* C* [% Y/ HGO: o  ^% I7 s" x

7 `8 ]* D" s4 S5 I- o-- 将作业与调度关联起来$ d9 g+ p8 V5 ^7 \9 A; w, H0 P* l2 p; S
EXEC sp_attach_schedule
- [0 S: c% m, C; [    @job_name = N'IncreaseUserCashJob',              -- 作业名称! L; {" |6 B  |- {
    @schedule_name = N'MinuteSchedule';             -- 调度名称; x" ^6 j# h8 P  E) c. g
GO, u; E6 k- w( e* B: S! ?, ~

6 _3 L) d9 Z- V+ |% s-- 提交作业创建到SQL Server Agent
0 H9 [( h% R/ L- W* U. ~EXEC sp_add_jobserver , G4 P6 r5 x, }+ X% U# s$ e
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
+ X8 v+ m' o/ `" t: o1 T& `6 Z    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
* i, J. B" s, b2 G, v2 qGO) m( M1 f# U+ w
3 m2 x% i. V# M) V  n1 c8 w1 u! O
$ Y6 B( S* P% T3 ~7 b+ `

, j& C  Q( ?4 t
4 P- M6 G0 }( n9 ~* y7 P
8 _7 N0 u2 F1 j% p! A& v
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-2-12 05:17 , Processed in 0.061039 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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