找回密码
 立即注册
查看: 2591|回复: 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作业计划每分钟运行一次-----------------------3 K' _7 S3 f: A1 G( _
USE msdb;, p3 [+ n  c0 E$ ~) n
GO: v8 X8 C: L1 J& q6 G% e
8 t2 B) L: P. b. S
-- 如果作业已存在,则先删除它
, r& r4 d7 L: E0 w% ^" o, q6 d* OIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
1 F% S* t0 S9 ]; \7 h    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
; t- q6 ~+ Z  }4 P9 M" cGO0 R# x* o2 i2 O7 C

: [% s' D: Y3 z% P1 K-- 创建新的作业- L+ T1 b9 b1 ?7 @, m7 T
EXEC sp_add_job
# h. g6 d" w9 X& t$ K6 }    @job_name = N'IncreaseUserCashJob',               -- 作业名称
$ E$ s- n3 A1 ~* Y0 h! ~0 S    @enabled = 1,                                    -- 启用作业
  X/ O# t9 ^7 U9 Q  g: }5 b    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改9 `9 @% V1 f8 t# ~/ Z2 k
    @notify_level_email = 0,                         -- 不发送电子邮件通知8 h  H+ [2 i$ _1 N
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
8 K/ j$ r* x1 ^# K8 Y! B    @notify_level_page = 0,                          -- 不发送寻呼通知
2 u: C+ ^" O! G; V3 {% ?    @delete_level = 0,                               -- 不自动删除作业2 M. y: G: n9 U
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
: M1 [  }# H4 b    @category_name = N'[Uncategorized (Local)]',     -- 作业类别1 W0 M# @' p' {. O7 g" I- w
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)/ F+ u9 Z4 S3 @( Q! h( A9 I
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
) H5 v: `& W  w) B  s( s: @GO* j3 c# q+ K, y6 [) r

- O) ~/ r; p! h7 D4 Y-- 为作业添加一个步骤% r7 _) N. r. J2 i
EXEC sp_add_jobstep 3 k4 {/ P% L* ]6 \. l; M
    @job_name = N'IncreaseUserCashJob',              -- 作业名称; p) l8 ]2 H7 H/ Y% H2 _
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
1 a: M& `' P2 w8 u$ ^+ F$ H+ x    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
6 K" @! f9 x' Y9 I; K9 s    @database_name = N'account',                     -- 指定数据库名称. x8 u+ l6 c2 B; F/ u
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)4 I! A6 a' n  U
    @retry_attempts = 5,                             -- 重试次数
  j9 q, E7 y) |! K" m- r5 G4 d    @retry_interval = 5;                             -- 重试间隔(分钟)
2 _5 }1 ~% ?# O) D  tGO
0 u7 I0 h; K8 o; b
0 T4 T8 g3 D% K- |-- 为作业添加一个每分钟执行一次的调度/ E  i! d3 z, a9 K& e
EXEC sp_add_schedule
  o8 W$ E9 c! A$ V2 K' a. T% }    @schedule_name = N'MinuteSchedule',             -- 调度名称0 U0 r" F7 v" ]# C  E; p# ^- D
    @freq_type = 4,                                  -- 频率类型(4表示每日)  V7 m- n7 l# R9 T
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行1 `! }. B0 x3 T1 q0 V# Z. @8 i
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)) ]$ v5 T, Y: i0 K& b% u6 u: a% v& _
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
( g/ v9 C' B" D* c+ H    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
$ p0 U# A, X/ x5 [0 l    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
# y7 u* m9 H. p" I! Z" v    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
, O% z- C, x: S. E; k1 n4 w7 z; O$ U    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)3 M) h+ b! S7 L2 P
GO! }' ]% t& ]& R7 Y5 A2 j, D  B
/ M6 x8 N7 X4 K& R
-- 将作业与调度关联起来
, {! L9 P. m/ Q* A# d* r9 fEXEC sp_attach_schedule
& O4 y+ c0 E, v4 e: x    @job_name = N'IncreaseUserCashJob',              -- 作业名称( Q8 q0 f0 L/ y, ~0 A
    @schedule_name = N'MinuteSchedule';             -- 调度名称
  O2 P  r- i# `) rGO
) S5 y6 t; X" _. e1 K) O5 b. k
' U4 J) M1 M: Y1 }-- 提交作业创建到SQL Server Agent  C* I0 p6 P5 S
EXEC sp_add_jobserver 7 @  Y" @4 q4 h2 t1 Q( x
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
" v, B' ?9 v# a9 M0 q& f$ v$ t    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')6 J' v8 ]5 g' ^. Z0 O
GO) z  R. m& T# P! O3 _3 v2 |

5 U0 [$ l& E2 m1 |
, n; Y' r( B% @1 m1 `; V' x
& W/ w( {: ?8 }/ w
( G( o' H, v) y/ v, V* T7 J
% I: ]5 Y2 P  K! h' ]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-5-14 00:16 , Processed in 0.043697 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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