找回密码
 立即注册
查看: 2652|回复: 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作业计划每分钟运行一次-----------------------
. J5 X4 r! @' K4 ~0 s; PUSE msdb;1 D5 A- I- n, s; u+ s7 P+ z: E. u
GO- I/ F  m) P5 Q8 ?) s
, T5 a8 d5 w9 t
-- 如果作业已存在,则先删除它! F9 }+ |; l$ E# s7 W
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
2 D$ R9 z% P$ r) p, G    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
, d. |+ `5 x* M# X8 iGO3 U( w5 r' U8 J6 g# t' F

4 V0 L; ?0 C% o! g/ ~-- 创建新的作业! x( {! {( k2 t; S
EXEC sp_add_job 8 Q3 L' N2 v+ [4 T6 ?
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
% [" H4 r9 W2 c/ E' k) N    @enabled = 1,                                    -- 启用作业( b9 ?' t+ o' H4 h
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改" }" t, B$ l5 L  {) f9 [
    @notify_level_email = 0,                         -- 不发送电子邮件通知9 E3 c  d4 j0 h. L2 F/ T
    @notify_level_netsend = 0,                       -- 不发送网络消息通知3 k% D, `' _, c" n6 o6 v2 \% Z
    @notify_level_page = 0,                          -- 不发送寻呼通知
0 q  u: v' \8 s! F! o, j    @delete_level = 0,                               -- 不自动删除作业1 d$ @6 B" `; T, s( h
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述5 C- y) N6 v: k4 f2 j( T  R1 [: T
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别2 Y0 M8 U- Q6 H; T" o0 l7 }; U
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)! U* \, Q  u( u6 J% ]6 s
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员/ n/ `+ J6 F$ c! Y; }& R
GO
% q' }# U( H- n: e+ F5 \/ e& d) f. W
-- 为作业添加一个步骤
4 @% e9 q2 m8 HEXEC sp_add_jobstep , r3 ]; d2 O3 m
    @job_name = N'IncreaseUserCashJob',              -- 作业名称* G/ i$ {1 C5 o" h
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称+ A2 ]6 t- i9 n! J
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
* X- M9 I; l/ B2 L" v/ {! @    @database_name = N'account',                     -- 指定数据库名称; ~, C2 q7 K! J4 `1 u  F8 W
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)8 e- E. N/ a4 d! T
    @retry_attempts = 5,                             -- 重试次数
% v* r* j) ?! I    @retry_interval = 5;                             -- 重试间隔(分钟)
) O: \* |7 G+ P2 j- NGO
+ Q* I/ H+ p5 z6 K8 Q4 u1 p% X
8 R$ N; `; x! n! z; o5 c: S- j-- 为作业添加一个每分钟执行一次的调度
0 @& W. p9 C5 VEXEC sp_add_schedule
9 ^! a# i, o  `$ q+ x, C+ `! L    @schedule_name = N'MinuteSchedule',             -- 调度名称
. L. O9 R8 b4 ^+ v1 g    @freq_type = 4,                                  -- 频率类型(4表示每日)
, s" C( E7 W" A    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
, P. g% _8 ^. Z2 z6 ?    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)5 _2 b5 I  B2 j
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)+ B# @( I* q) Z$ J! J
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)& o& [& @5 |7 B$ f- p" z: b
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
9 u) T& ~. {- X8 m7 Q- h    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
- ~& R9 X- f' c) L; |9 a, g    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
' O9 F5 |" z+ \9 _GO) L6 {: k' |7 Q, H% H" \

7 m; n# f7 q( _2 A. v# n& o( R-- 将作业与调度关联起来+ {' g5 h/ ^" b5 F4 |
EXEC sp_attach_schedule & N! D! W9 G3 t( X" O' f/ R
    @job_name = N'IncreaseUserCashJob',              -- 作业名称, U# o7 U! t9 k1 k/ g4 S
    @schedule_name = N'MinuteSchedule';             -- 调度名称
7 w$ E5 U; a1 t0 w. T; YGO
  N! P3 g& c5 z" x7 g
0 K% x  G5 d5 M" w  w5 z2 K, m8 X-- 提交作业创建到SQL Server Agent9 k  w5 s/ y( x  t( _# m0 Y
EXEC sp_add_jobserver . ^) D# ?, z6 h$ T9 m
    @job_name = N'IncreaseUserCashJob',              -- 作业名称' B% o/ X0 K. c8 T) n
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')& j; ]9 a$ I2 J. U6 o" ^; ~
GO
' h% g* W9 \' s5 x6 c& V
7 ^/ U: [, A, W! N7 H/ P# ]2 j5 l# ]3 w$ A' Z& j

$ D/ \7 A3 c+ b5 V( ^3 Z, i8 S! P2 `" i# s# l$ M$ \
8 H! S3 n9 p! |* K
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-5-23 03:41 , Processed in 0.032866 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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