找回密码
 立即注册
查看: 2593|回复: 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作业计划每分钟运行一次-----------------------$ l2 E& p/ }. L' K- `5 K
USE msdb;
5 E  r6 V( F9 mGO! g- Y/ [# Q, A  f1 f2 T/ F) ]

; y7 w0 `6 O# ~% W-- 如果作业已存在,则先删除它5 y3 V" c- q0 o, d
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
7 p; O* y4 A3 e* `3 x    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
( U' G# H( u) y( qGO2 w8 W; o* y: _8 v% b+ ~
0 b9 x$ v4 u1 o& T& @* X
-- 创建新的作业
5 H3 p) |9 D, r2 OEXEC sp_add_job
) i% ?; V5 c1 U% Z% H6 |5 ^    @job_name = N'IncreaseUserCashJob',               -- 作业名称
) C& F% A. O5 S: U% @    @enabled = 1,                                    -- 启用作业+ ]  F* z; y; j4 ^' B
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改0 }: c! B2 G) `* U0 X
    @notify_level_email = 0,                         -- 不发送电子邮件通知
! G. J- D- C+ z) ]  H  i0 u0 M    @notify_level_netsend = 0,                       -- 不发送网络消息通知( r  x; M; j! {
    @notify_level_page = 0,                          -- 不发送寻呼通知
! f6 K5 j: k' d8 L- B, z6 Q; \    @delete_level = 0,                               -- 不自动删除作业
$ T; D( E1 o) S% u    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述, _6 N" I) l' x; S
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
" Y1 Q5 `* j6 J0 Z# X8 s    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
6 ~  J. Y5 p( F* X; A) U  F/ S    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
8 o& Y, L" Y" D! ^0 P9 pGO
  ]& ~( [$ T' X$ q+ j& m' f5 G: `5 J+ D" Y" W
-- 为作业添加一个步骤
) p, N! P+ j3 `EXEC sp_add_jobstep
- y1 `% A! `9 c: x$ L    @job_name = N'IncreaseUserCashJob',              -- 作业名称5 Z- j0 Y, B4 d) B6 G( W1 S
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称; V) P! ]8 g2 d$ m4 W
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
$ v( m6 S8 O# s    @database_name = N'account',                     -- 指定数据库名称' U4 p( \  k  z: b. t
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程), P* a3 [9 u8 i3 K& C1 E. ~* P0 _
    @retry_attempts = 5,                             -- 重试次数( C# r& V) Y. l
    @retry_interval = 5;                             -- 重试间隔(分钟). ~8 |; n! J# W
GO
( E  x  q$ S! q2 i; G8 K
  X6 ?. w+ Q9 h5 x' K9 _-- 为作业添加一个每分钟执行一次的调度
! s+ k, \" d; P/ W5 X$ NEXEC sp_add_schedule
* I# s6 a; c- N1 J, i1 y- F    @schedule_name = N'MinuteSchedule',             -- 调度名称
( v- {! g  b) [* O# z" g    @freq_type = 4,                                  -- 频率类型(4表示每日)
! e: v2 d( o1 I" n. _    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行4 u) S/ N. O# a. H! U
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
; f: h0 m6 ]* }# y7 N    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
; d& n) }: x' G, N& D    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
. C9 T8 r; B, w$ W( i/ L& w, m    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)) J' \2 ?: Z; `! q. c7 B
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
3 `% z) @: A# }1 s0 G    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)6 {& d3 S* J# C; i6 d6 o
GO
5 W. t: v8 `8 V
( T; f# [# R- e; Y2 w( g. z-- 将作业与调度关联起来
+ A8 f+ ]- H7 Y. oEXEC sp_attach_schedule
/ j9 G, o( G' Y( j1 M  U    @job_name = N'IncreaseUserCashJob',              -- 作业名称& z3 ~6 [8 B4 b% [
    @schedule_name = N'MinuteSchedule';             -- 调度名称/ `/ i0 J0 l. n+ L8 M+ Y
GO, k$ w1 Q+ y  [5 o& r' x3 o% W

; L7 ^+ c: u% r. B- o-- 提交作业创建到SQL Server Agent
' ?4 T7 {; y6 \- a" k/ h3 \5 oEXEC sp_add_jobserver   R+ V- F: G5 [9 m2 g$ v+ x- w
    @job_name = N'IncreaseUserCashJob',              -- 作业名称! |* c7 n4 w( R8 G, s4 ^  m  y
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
# T# ^0 m- n% ], S& ~GO
' G6 s. |5 _5 I4 |- Y1 I( k9 c
5 R. h4 _9 P1 @4 f6 u+ p! g' p. i+ P" k- P! x4 Y$ \
) P% A* ~, s' R! q. @6 E& Y
* H# m; d: d8 ~

, B" Z7 Q! x  s5 Y+ m
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

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

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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