找回密码
 立即注册
查看: 2632|回复: 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作业计划每分钟运行一次-----------------------( T- s& F/ H! \( A) j) N
USE msdb;
! e$ v; p2 E$ }/ }GO
9 F& H3 i4 K) Z. j7 E9 E* t* w9 C9 d; p; b
-- 如果作业已存在,则先删除它
0 F  a3 E) j- ?6 Q- f; n* _IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob'), L2 W% I' K; G9 }+ i  ~+ y
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';, Q; u+ X/ Z% a0 `: Y) p6 c
GO% g* ]$ Y4 s4 U* s, P) m/ r3 \7 l( f
. t# Z) z: \4 G7 e. w: c
-- 创建新的作业. v, N4 O: z1 B1 `: t& B
EXEC sp_add_job , l' K* n0 B* V
    @job_name = N'IncreaseUserCashJob',               -- 作业名称( R1 s5 b1 h( @
    @enabled = 1,                                    -- 启用作业
9 _- y9 x( v" {. F, @! Z9 F    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
/ y! j' s- g8 d  Z* }    @notify_level_email = 0,                         -- 不发送电子邮件通知
" l' }3 o4 A% ^. X: M    @notify_level_netsend = 0,                       -- 不发送网络消息通知
, T- A0 c( q6 f: g. C$ D- ]    @notify_level_page = 0,                          -- 不发送寻呼通知
5 V- U+ E$ b$ B    @delete_level = 0,                               -- 不自动删除作业) b# n" h  m3 q
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
5 J" y# G. F8 @$ P! @# N0 v4 Y    @category_name = N'[Uncategorized (Local)]',     -- 作业类别# R3 p( X3 C3 _! W+ j- y. L- o& d
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
( T* `3 Q$ `; w; \) B    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
6 ^9 i9 ^* ?" \" u' }; O6 X9 O3 zGO  W: D5 \+ R2 u8 M( p/ f8 `+ \
0 @8 e/ }/ K" U
-- 为作业添加一个步骤
# J% |1 U) @& l* }) a, Y3 ZEXEC sp_add_jobstep 8 K1 S- @4 W( G6 E+ Z8 G4 b
    @job_name = N'IncreaseUserCashJob',              -- 作业名称# B+ g6 [7 ]  P% Q7 r8 [! Z# S
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称- b' j  B, d) |$ d5 w
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
/ H( m) m+ f9 O+ @" G& d    @database_name = N'account',                     -- 指定数据库名称' e) `+ Q' b( T+ {1 o* {5 r
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
4 @% @, l' V  P* R    @retry_attempts = 5,                             -- 重试次数
+ m) m: `, E: C2 _2 I. X) q7 [    @retry_interval = 5;                             -- 重试间隔(分钟)/ L" C4 E4 \1 j& Y# O! G
GO$ A7 \1 W- r# j$ c8 H

) X' V9 T; K# `: }+ x9 U" z; j' Z: ^-- 为作业添加一个每分钟执行一次的调度
; X6 x. v6 [! y' \" e' K; JEXEC sp_add_schedule
% ~: _! S# \5 b; X$ ?& M    @schedule_name = N'MinuteSchedule',             -- 调度名称* Y, \6 q* ~, v! g% q5 q
    @freq_type = 4,                                  -- 频率类型(4表示每日)$ N% d" n0 f+ Q- Q, w
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行! i7 x# c% y+ L4 b" O
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
$ \( R% s4 x1 A9 f8 S3 L, b    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)/ _$ s3 G- h! z# j
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
8 d! D" T* P) `% `5 A  Q8 M' p    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
# M+ L( ?* }% U1 q) `  K" z    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)+ B& {( ]( V# s* a; w- a
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
1 x- B6 _  Y* K/ yGO8 \  Z+ e9 K: j3 X

0 |- o) k$ Y" S8 N& b/ |& q-- 将作业与调度关联起来
$ I+ V) h7 I5 D% V5 ~EXEC sp_attach_schedule
, e/ x. t. T; F6 L% {1 P- _, a: t    @job_name = N'IncreaseUserCashJob',              -- 作业名称* H0 H( e( G4 p5 Z  [* o
    @schedule_name = N'MinuteSchedule';             -- 调度名称
0 \: H; V2 D- e9 m- XGO+ {7 v% {# j1 X( j
3 Q& R, Q. W' T6 ^
-- 提交作业创建到SQL Server Agent& Y, g! P0 c- H" D- |
EXEC sp_add_jobserver   P+ J1 q9 v. V9 X
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
* l5 O  u- e2 Z  D( E) n    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
& Z) n# H( c: wGO
! g  |  F- I$ Q0 I9 y8 d7 a' c6 H& h9 d/ l! u
2 e1 `  @, R! O& b; U

# g: ~4 F* R' U% J7 y* p" Z$ q8 y  u  O$ a  u! X+ J! y

' M: J/ h' x4 s% q
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-5-20 03:43 , Processed in 0.047942 second(s), 31 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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