找回密码
 立即注册
查看: 3100|回复: 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作业计划每分钟运行一次-----------------------
' v+ j; j  f, @0 t- Z6 S+ l: j- {+ MUSE msdb;5 Q- ]/ `, F" l! ~$ Q* ]
GO
0 f4 k+ i6 L* r" y# ]/ L, l3 B) |' w
-- 如果作业已存在,则先删除它
+ @  t! p; h, bIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')$ H( f) k' @( R/ ^) z( ~
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
- x+ w2 e2 Z' fGO& _6 f& @) e2 i# u0 E+ B

+ n2 |" {: q% u" c6 m5 Y4 m" h9 N-- 创建新的作业
( x4 y) P8 U) Z" V% ]+ mEXEC sp_add_job ; P7 X* Q+ r  }+ l
    @job_name = N'IncreaseUserCashJob',               -- 作业名称0 J: B% g* N+ {  V0 {
    @enabled = 1,                                    -- 启用作业5 r' I  ~9 H+ c9 g) b; n% f! J7 q7 F
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
# L9 ]# c# |# [, }8 W    @notify_level_email = 0,                         -- 不发送电子邮件通知" N4 _* P9 y" h, v% q! |( I% X
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
  b' R% h* l4 K2 s7 S    @notify_level_page = 0,                          -- 不发送寻呼通知/ _7 q: _, R0 m0 P8 d+ i
    @delete_level = 0,                               -- 不自动删除作业* b/ z1 \7 A5 [3 y1 v' J& }
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
' e5 ?8 j9 _) ]5 F8 Q5 L    @category_name = N'[Uncategorized (Local)]',     -- 作业类别" o, q. ^: x9 _: i- w" e) V7 Z0 D8 y
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)1 l; E  X# b' p
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员6 c% o/ Q9 j% ~, D
GO0 m( r6 `4 s" o. j5 K: M  K

( l' D; e9 F, i. X9 p-- 为作业添加一个步骤% \' Z  j. m0 X4 q- h
EXEC sp_add_jobstep
+ {$ Y% Y+ ]- K    @job_name = N'IncreaseUserCashJob',              -- 作业名称
( o* k, X4 ?( w5 P+ I4 D    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称" q$ A4 h/ u0 B" Y6 k, M3 p
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)+ n6 ]1 h! X9 D- s* r
    @database_name = N'account',                     -- 指定数据库名称: I; Y7 m! n! R
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程): T* p, _0 H9 t$ b$ \+ x
    @retry_attempts = 5,                             -- 重试次数! Z9 a) E$ D- q: k! i
    @retry_interval = 5;                             -- 重试间隔(分钟)2 w. s! c, b4 {9 ~2 I
GO3 {3 ]& \! b7 X4 @1 K$ R1 W' q! V

; A3 P- l. \3 t, y4 g0 ~6 h0 n-- 为作业添加一个每分钟执行一次的调度
/ \5 d1 r  w7 e. d% s' YEXEC sp_add_schedule " T9 T# W6 i1 m& q3 T; E$ A6 N
    @schedule_name = N'MinuteSchedule',             -- 调度名称' x/ p0 w* \# O, s8 P
    @freq_type = 4,                                  -- 频率类型(4表示每日)
+ C6 H, v. L( p! H7 Z3 ?! p* s    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
6 v7 C/ R. ^1 A) O, D    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
" J8 O) C& m# A+ H    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)3 y  b$ [8 P7 Y) v9 W8 j
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)" D$ O# o! `" \8 m0 q
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
# u9 A8 F+ r. b" e( K: k    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
; p/ g7 N6 b# _& L' f    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
- G8 w3 s# [; I5 x6 [/ sGO4 d; C3 l6 K! n2 k# e2 c
6 S* j! n# T' J) H- P6 V
-- 将作业与调度关联起来% \8 m( g0 N% R& e+ u
EXEC sp_attach_schedule # x7 O/ v7 V. u: m- z+ F
    @job_name = N'IncreaseUserCashJob',              -- 作业名称. O" q  H# N' O1 z2 Q
    @schedule_name = N'MinuteSchedule';             -- 调度名称$ W! d& [: ~5 Z& t7 _+ Z( `6 {
GO
1 K9 Q. h6 z0 _, S, d, w# @; x: e6 L# {. }
-- 提交作业创建到SQL Server Agent
2 m" C9 j8 I$ E6 w5 t0 G% SEXEC sp_add_jobserver ( L- B$ T* X( m* c4 b
    @job_name = N'IncreaseUserCashJob',              -- 作业名称8 b) e1 ~" F2 l% b7 C6 @
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
+ W) G! O$ W& O1 ]GO
) j( c& N# W' E. e& b3 {6 U; N* X
7 Q0 u$ @6 ~* _9 I8 d8 f% e6 [8 Z. L- C

0 o8 n* @  e) {" [* v" w) `. V9 ?. E# p5 c" `

/ m% P3 |0 M: R& d3 f
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-8-7 22:54 , Processed in 0.096543 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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