找回密码
 立即注册
查看: 2897|回复: 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作业计划每分钟运行一次-----------------------+ f, o- _1 i# B2 @/ Q" H4 B
USE msdb;
; f5 u- Y. d( T2 H9 g# D! JGO2 i. E# L3 y  B$ i1 [+ d

/ N  w9 U: q& Y-- 如果作业已存在,则先删除它1 V6 D. Q/ j( `$ w7 H: L
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
+ z3 M+ `6 r* H+ D2 [9 x    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';- f+ l# |2 _* N7 s1 ^$ a
GO
# `( X9 k1 d8 v  e  h8 w2 @, K# W6 B! P) h
-- 创建新的作业3 b2 |( I/ ]- Y( `/ P( i
EXEC sp_add_job
' b% b; C9 W; @% r5 V. _    @job_name = N'IncreaseUserCashJob',               -- 作业名称
. ~: p) q9 D. T7 Q( Z# _    @enabled = 1,                                    -- 启用作业
$ J! j6 W! k* s) G    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
% ~1 q3 g6 o# p3 `) t2 o3 a, t    @notify_level_email = 0,                         -- 不发送电子邮件通知) f* J) \: O- `! v
    @notify_level_netsend = 0,                       -- 不发送网络消息通知; ?3 k+ v: G9 K
    @notify_level_page = 0,                          -- 不发送寻呼通知- g$ B6 J) v8 E7 z- \. E4 k
    @delete_level = 0,                               -- 不自动删除作业; {$ _9 Q& |8 u8 V" D3 [
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
3 X2 b/ r7 y3 \2 r. z% A! Y    @category_name = N'[Uncategorized (Local)]',     -- 作业类别$ n5 C+ N+ S* S% m
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
: z4 i& D6 y, v! Y7 a7 `    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
3 d& r# {" A) b1 CGO. v- Q* I, a$ w8 D; t. N

( s. o7 d, Q/ w" R; ^  {' M* H  O: d+ r-- 为作业添加一个步骤) W/ k9 S0 M; A1 y1 K
EXEC sp_add_jobstep
9 x! |# m3 {( o2 o3 c. i    @job_name = N'IncreaseUserCashJob',              -- 作业名称6 m# c) j0 C3 y- q0 y
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称- y) k) K4 W# Z8 u* F( \. L/ Z
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)3 V, ^6 p3 l( u5 G0 e
    @database_name = N'account',                     -- 指定数据库名称
. N6 `# d# [# A- U0 x    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
4 g* b" P# @4 r- W/ ?4 I- V    @retry_attempts = 5,                             -- 重试次数
) y3 ]3 d8 c) d3 S# c3 o    @retry_interval = 5;                             -- 重试间隔(分钟)
$ B2 p5 x& }( f5 e5 |GO
( t5 X4 {4 y' `: k' |5 V/ _& F
! G) H  z- ~  `+ G: D-- 为作业添加一个每分钟执行一次的调度
* j! L9 H0 _, R1 W% t, K3 |EXEC sp_add_schedule
5 L1 l- K' ?4 I    @schedule_name = N'MinuteSchedule',             -- 调度名称1 }( w: S5 ?: o  f; c+ ]* X
    @freq_type = 4,                                  -- 频率类型(4表示每日)
" Y3 U  C6 G! m- `3 M7 M0 v    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行  Q1 F6 s  K2 N6 ]4 I" r. r
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
' s/ M# M2 F% G: Q. p, F    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
- S3 |, X# o- R$ {6 r1 F    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
7 n. T) V% C0 A- T    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)4 D* b' [& P7 [8 s8 l9 ~' t
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)3 L5 s( m$ l0 k4 z$ O- k# }/ e
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)& {0 a' d  T! j9 k) l9 Q- i' ~
GO
0 R  s8 g" }/ _& l, P3 ~% G' N3 Z& {4 R. }
-- 将作业与调度关联起来7 n: [- k) c+ F& R1 G8 @$ {; x: M& H
EXEC sp_attach_schedule
1 C8 ^3 b* r! _: k: N' e  `+ A    @job_name = N'IncreaseUserCashJob',              -- 作业名称' d' l2 \3 _4 D$ ^
    @schedule_name = N'MinuteSchedule';             -- 调度名称
# T0 O# p3 r: |. FGO0 R4 m" k8 G3 ]/ ~' x" l$ d
" c9 o1 ^6 J  G- ~9 `* Z" e' T
-- 提交作业创建到SQL Server Agent
6 v8 \! ^8 f* m# P4 K. U, DEXEC sp_add_jobserver
9 Z7 F' F( _% ^4 t6 A    @job_name = N'IncreaseUserCashJob',              -- 作业名称
+ r( g) Q4 E9 `' b/ u$ A    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')2 V& i' o% U- X8 K: i
GO
6 S/ p) T' E$ s: }7 H
0 V3 t9 {! a. \( W( c  T
+ \% ~% R) x+ a2 k
! p3 ~3 R6 U! u6 c. L3 ^2 n" Y0 W- b% F" I
$ o/ }- ?7 P8 X+ f; U% Q
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-7-3 06:48 , Processed in 0.316203 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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