找回密码
 立即注册
查看: 2981|回复: 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作业计划每分钟运行一次-----------------------3 i9 k1 O2 _, G
USE msdb;, V. A. q1 f2 _0 |; y6 E, S
GO' Z' o5 g# V! Y  s

/ z5 [; P7 U' H1 d- a+ i-- 如果作业已存在,则先删除它
$ m! g- @, o0 j1 LIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')2 z- B2 _: V6 Y6 v$ u4 S9 `
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
1 |* z* l& }& F+ p0 k# B5 S' mGO
0 j+ F) y: S7 P1 A, B7 f
  X- S, M% l0 h, _, R4 M+ P-- 创建新的作业, P2 f- G. Y+ y$ D/ ?
EXEC sp_add_job 4 ~% \0 x( a" H
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
3 |) B: u  z" z; e! i+ L    @enabled = 1,                                    -- 启用作业0 v- a. X3 [1 ~- Z/ K) w1 i0 E5 J
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
6 ~& u0 L  T8 K1 W    @notify_level_email = 0,                         -- 不发送电子邮件通知& P* _% X' b5 i  a; X& b+ X% [  _" _) z
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
( D; H8 o1 w5 p; [+ _- t% J    @notify_level_page = 0,                          -- 不发送寻呼通知
8 R( V% D, |' U2 [( W5 K! ~6 `. J! F    @delete_level = 0,                               -- 不自动删除作业+ Q& m, J# t, P) f7 I7 y9 V5 P( R
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述4 R' T! ~& g/ o% x; J
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别; C- }& f  p3 Y$ T# q! ^+ y- f8 B
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
0 v2 m( b7 ]6 h* \) E    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员4 P- K. T, o  h$ E8 Q- x  v+ s
GO/ r* y0 [8 C* W5 y

6 b) Y  N) {& q-- 为作业添加一个步骤
6 Y7 n( H6 O" L6 m; c% X( ]EXEC sp_add_jobstep
$ d4 b; {4 o- A! K    @job_name = N'IncreaseUserCashJob',              -- 作业名称
) ?3 Q, V8 s8 I    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称( v) S6 j% M/ Z! ]
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)4 A$ C8 n# @: m" ~
    @database_name = N'account',                     -- 指定数据库名称  Y$ Z4 w& I9 s" `, E" P6 X
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
0 Q& k: P5 D( C: V  E    @retry_attempts = 5,                             -- 重试次数2 E/ p$ K( A" L. a8 `2 f
    @retry_interval = 5;                             -- 重试间隔(分钟)$ t4 \8 I1 R. t' O! J( U) Y
GO
2 }$ k& D, S2 B4 l- C! T0 [8 Q+ I* ?. y' I% v. `+ S6 ?
-- 为作业添加一个每分钟执行一次的调度
; F/ b5 ]* {8 D0 S. K2 ?EXEC sp_add_schedule
+ Q  K$ @$ Y; o' Q# A    @schedule_name = N'MinuteSchedule',             -- 调度名称
7 W5 S$ F0 M$ L" C" O1 |" }    @freq_type = 4,                                  -- 频率类型(4表示每日)/ K5 K. b" N1 i  t
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行* O2 u! e  t; T! j$ z, Y
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟), T4 Y( ~+ Q5 K) K- ^
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)- v% B; V) H5 C$ p( }7 L, e
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
$ |! N. N- z4 @+ C. X+ K    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)2 ^' P' F( R: k: D, `9 n
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
$ T6 V) H1 }0 W2 H6 T3 B    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)' }) l! Y% O7 }1 r" U6 ~
GO2 ?2 x7 I; b: w& G/ g
! ?, l( A3 i/ |9 l9 I5 F* Y. e
-- 将作业与调度关联起来
3 V9 S$ Z9 ~, M/ y" tEXEC sp_attach_schedule ' O: L, P: r2 @/ {2 R$ q
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
" h8 c8 W# q4 `  R: s    @schedule_name = N'MinuteSchedule';             -- 调度名称- i; L( U3 Q4 I
GO
* e( `# r( _/ W" V; U9 E' s% m+ k. Z% T, w, R9 @) d2 \; k% s& Z
-- 提交作业创建到SQL Server Agent# L- Y. t* }) c2 s/ O+ E
EXEC sp_add_jobserver
8 p: w: j7 S0 e+ U( k% Y$ H8 n' a    @job_name = N'IncreaseUserCashJob',              -- 作业名称9 q0 J6 M# J4 ]1 a: q5 F" T
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
" a: C. n: M1 P+ y: ?GO. a& }$ m8 K# A6 Z* }2 A0 S3 ?
7 G# l2 q* S4 T4 P. y
4 L+ s8 ^- v7 e2 O
5 h& c  F9 m& Q+ H4 u' [

3 K6 }& y: I# h; b7 [0 O
% U1 ?5 i/ _' K8 {6 e: G" Z
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-7-17 18:57 , Processed in 0.052748 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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