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

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

[复制链接]

2

主题

75

回帖

891

积分

高级会员

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

2

主题

75

回帖

891

积分

高级会员

积分
891
金钱
742
贡献
72
注册时间
2024-9-13
发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------, |4 c' C0 Z1 y8 U: f8 I, d
USE msdb;, ?8 }, l9 k3 b4 \+ V. F
GO" i. Y, Z. h3 g
; B4 @  A" k! s0 a1 P2 S
-- 如果作业已存在,则先删除它8 V1 t3 h  v7 ?  _7 [
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
/ G2 {0 S0 @* D& }    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
' Y- y& D; r8 y! b( b7 L5 DGO
  \# P5 C8 K  i% q/ P$ A8 D
7 C( Q& t, D" v% O, \* a-- 创建新的作业4 \5 k- l& K* s
EXEC sp_add_job ) w6 B, S, c  z! x' @1 z6 m
    @job_name = N'IncreaseUserCashJob',               -- 作业名称4 t8 g+ b  I2 D
    @enabled = 1,                                    -- 启用作业
5 C+ \+ b7 v/ [9 K* E    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
) n+ F! A1 z7 ?+ V4 z7 o8 s. K% p6 r    @notify_level_email = 0,                         -- 不发送电子邮件通知# p- m+ S0 o3 a) `
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
' ^# r+ j- Q9 Y2 \- h. E9 i! m    @notify_level_page = 0,                          -- 不发送寻呼通知
3 X% i4 L- W% o( Q4 J  k) T    @delete_level = 0,                               -- 不自动删除作业
1 @, G9 |8 w+ C    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述" u; }" Q" ~% @2 S! V
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
: L. I: ^( H0 R" b3 _( M$ s0 ]    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)5 z7 w1 t: b& J9 d3 g1 Y
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
" I: y! M4 n1 a& Z( o+ r9 C3 @4 mGO) j3 A/ C# h# Q) ^5 @

/ ?8 N5 s: D$ a) U' {-- 为作业添加一个步骤* R8 S% l0 k% g8 R+ N8 r
EXEC sp_add_jobstep
( }( m/ v6 m" {5 g* f7 h9 n    @job_name = N'IncreaseUserCashJob',              -- 作业名称" b# ?. r4 i1 W2 B/ j
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称- O4 @! `1 ]1 {9 r+ u
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
7 L; }; S/ P) c, ?    @database_name = N'account',                     -- 指定数据库名称( H+ q( ^1 G; d5 M$ T
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
8 h0 r$ c; i0 w7 z    @retry_attempts = 5,                             -- 重试次数" J' O- r. \' g" U1 c6 H
    @retry_interval = 5;                             -- 重试间隔(分钟)! R8 v  P! r( [: `, u
GO
" R+ D: o2 H& }8 V, P# }! `1 q6 [5 z4 U- d$ j) p0 q  J
-- 为作业添加一个每分钟执行一次的调度. a$ Z6 I! T; n3 c. O+ D8 b
EXEC sp_add_schedule
6 x2 \1 O  Z/ N; E* \    @schedule_name = N'MinuteSchedule',             -- 调度名称
( ?8 Z8 e) g6 y& k9 a: N    @freq_type = 4,                                  -- 频率类型(4表示每日)& ^6 v& A* }1 g6 w
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行& @+ l$ c( g; O; y9 u$ }
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)* k1 z% B1 l# {' A
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
+ I( t( P% [; m. y- T4 R9 i    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
7 u) J/ ?4 d! M) C4 l, b" k2 H    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
3 @% V/ C" e7 a# W) Y6 W$ C    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)* y9 X" w! x/ a- t! C6 |
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)5 {/ W- H# s/ z
GO4 F* |4 {* r9 |

8 K+ a0 v' V, l( w" e/ R# D-- 将作业与调度关联起来. \( q, s4 A/ M: b
EXEC sp_attach_schedule
8 c1 J; n6 u7 f' g! u/ |( g    @job_name = N'IncreaseUserCashJob',              -- 作业名称
8 u- j: U5 Z# V5 G! l: s0 L' t9 D    @schedule_name = N'MinuteSchedule';             -- 调度名称4 z3 Y1 I8 `; a# _% g( @( k
GO
4 e: X( R" j" L- ~1 O0 J
  w" z1 J- P: P) R; q8 ~5 t-- 提交作业创建到SQL Server Agent
0 O5 |% ?8 n0 VEXEC sp_add_jobserver
5 E3 {& u- o7 o    @job_name = N'IncreaseUserCashJob',              -- 作业名称
# Z7 G0 r( C/ z) Z! J) z* D9 Z6 u    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
# J0 o( Y2 B" a/ v2 g, g8 }: w/ U" ]GO  V2 p7 @5 u# i8 T5 y' x# Z  W
& |# x) D3 P- V' c

& |+ ^" g( B+ o* b# g# c# P$ I5 R+ F3 c4 v- o
& e9 W7 _7 R+ F- _$ ^% Q$ @' [) g7 d# a

, Z. s4 g4 m  V# t; Z! [% y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-10-14 01:07 , Processed in 0.049418 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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