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

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

[复制链接]

2

主题

75

回帖

870

积分

高级会员

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

2

主题

75

回帖

870

积分

高级会员

积分
870
金钱
730
贡献
63
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
! N0 l4 j: i! o, Z& M  q& ZUSE msdb;
$ O, a6 ~8 s, t' @# k3 vGO1 `2 {! q! }+ A) U# s: e

! {$ {( m5 d- s% k  S9 A" e-- 如果作业已存在,则先删除它
, l0 b3 [9 Y. h  kIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
, F1 n6 l6 A9 ]2 j( V6 b6 d    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';: m  g  z1 s4 v/ F
GO2 y2 b. x( h! }5 j  j

% M9 @% e$ Y* M5 R/ j; ?-- 创建新的作业
9 a) L- A) v& Y2 BEXEC sp_add_job ; P" F& s  {- z1 s/ |6 e3 K% |1 ~/ {
    @job_name = N'IncreaseUserCashJob',               -- 作业名称! J) W: l  P' n, V- s2 W% a
    @enabled = 1,                                    -- 启用作业' q7 f$ i0 ?8 w5 O" r6 |
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
: I& e6 M1 p8 m' j    @notify_level_email = 0,                         -- 不发送电子邮件通知
# W6 n% X1 b" r9 }* L; r    @notify_level_netsend = 0,                       -- 不发送网络消息通知" c/ v3 |' n7 G, E4 e
    @notify_level_page = 0,                          -- 不发送寻呼通知
+ U/ ?& ^9 O2 B9 i# ^7 x: [    @delete_level = 0,                               -- 不自动删除作业
2 n5 P2 X" m/ S- Q8 W) ?- {7 h    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
3 P' f3 J0 l2 R5 I7 _( f    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
( F1 q+ t! U5 E9 b( B/ y    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)' v, i) h: L. B) B' b- m! H
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员; z# n/ g2 {% }/ j# d6 w
GO
) n3 Y) W. g& I8 [" a& |# L
( {4 E. R. I/ E5 f* C4 }-- 为作业添加一个步骤2 K* `$ V, G3 b. @
EXEC sp_add_jobstep 0 b- D/ V0 }" o" W8 _( @
    @job_name = N'IncreaseUserCashJob',              -- 作业名称6 t- D" ~4 u$ Q: G' P9 ?5 A
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称- Y' ]/ a0 O  O
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
! _" ~$ Z6 `7 C: A$ e* z0 D2 t+ E    @database_name = N'account',                     -- 指定数据库名称
$ \1 }$ J3 O# J3 T    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
4 w' j4 B) D4 e* r    @retry_attempts = 5,                             -- 重试次数9 y  ]2 [5 t6 z3 v5 K
    @retry_interval = 5;                             -- 重试间隔(分钟)
  J$ v3 f5 A7 O- @. gGO: W% X8 F' u# G6 F' w4 c1 K4 L! _

# {9 D8 c0 Q5 U! P+ b-- 为作业添加一个每分钟执行一次的调度
. H1 y3 [( _8 L/ eEXEC sp_add_schedule * `" Z# p. S, n# {! ^8 m$ w
    @schedule_name = N'MinuteSchedule',             -- 调度名称' _# t5 y: `1 b9 D6 w- Z/ A7 s
    @freq_type = 4,                                  -- 频率类型(4表示每日)5 ?5 U! h( A' O4 Q& \8 ?3 T3 o
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行: ?' h& Z! s# Z! I3 a/ Q* r
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
* Z# B/ p7 B5 K  x5 ~' |" _    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
8 _$ I: b, x+ E0 E* v    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
" j; z* q, C: Y: n7 J; E: v. ^5 f    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)9 O& V, U$ _( ?
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)3 L3 A3 U5 O. c8 i% C
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)' x: I( ]+ |9 {, [$ A
GO
2 J' Y  {5 u& E1 t
- j4 S9 i5 l3 ~$ ^! b- @7 l-- 将作业与调度关联起来6 r3 d& u" V7 K. n4 B
EXEC sp_attach_schedule : [/ k8 K2 d1 t9 W8 J
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
2 w3 Z$ w, [0 _* |, [3 p    @schedule_name = N'MinuteSchedule';             -- 调度名称
$ D) r+ b" ], C! t9 lGO/ p1 P5 v1 T6 C, `

% r9 Q; Y9 D/ i$ m; L& T-- 提交作业创建到SQL Server Agent
3 t9 A0 Q1 Q% B1 V- REXEC sp_add_jobserver , B0 U" b" o* K, G& D8 b# o$ v: I
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
( e3 w. e# R+ i- T  h    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
! K7 U' X- ]/ x! `* i1 B1 TGO
  u2 K# M9 I2 R9 X6 q0 s5 f- R2 S

: N4 c# X1 C2 _4 j. `6 K% w$ Y: V, @! n6 Z1 \

# j. m) `# U; e. Z7 n( h. N- p* g' b, G
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-5-12 23:21 , Processed in 0.051752 second(s), 30 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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