找回密码
 立即注册
查看: 2627|回复: 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作业计划每分钟运行一次-----------------------4 ?: Q+ S; U, ]% G
USE msdb;
2 J; t* ^2 j" {# e5 lGO
/ k# @/ V* H: G0 ~! n4 v- Z1 Q! R" h6 s# ?
-- 如果作业已存在,则先删除它2 [% ~- N! @; W# f' `9 z
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
0 n  A. r4 D7 j" l# E6 n    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';/ J! l& n  ^% q
GO
: @# F0 \3 s1 A" f& ~6 O
; }( q6 R; Z6 [-- 创建新的作业# b5 o' \2 X( y1 _+ v
EXEC sp_add_job
. g  D5 s) \$ d4 v/ W. x    @job_name = N'IncreaseUserCashJob',               -- 作业名称* [) M& Y( ?9 i& _' k0 I$ }
    @enabled = 1,                                    -- 启用作业
! D2 @7 \) A( O4 N9 Y    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
! u7 R& a. _& z$ \5 Y    @notify_level_email = 0,                         -- 不发送电子邮件通知4 v$ @/ y. y+ x& c
    @notify_level_netsend = 0,                       -- 不发送网络消息通知& q+ |/ K; b" Z$ B/ C( i3 f& |+ `* M
    @notify_level_page = 0,                          -- 不发送寻呼通知. a8 L: z( k! e: ?
    @delete_level = 0,                               -- 不自动删除作业
2 [' k& q, a' B/ U( a) P2 d5 G    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
* a/ N' E4 f6 Q$ c) c/ v5 _8 K    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
' }. Y4 B7 C4 g    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)" D+ ]3 L, F) A0 ?; m
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员! b5 r* ^. X  n9 ]
GO
, S- y7 H* K3 y1 G/ m; g
# y+ a# r  X1 v  M-- 为作业添加一个步骤
% T+ T4 s: w6 D- _! [EXEC sp_add_jobstep 9 U; }6 L, R( ]* \  x
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
8 P+ V! S) y& l9 A& P# S( b0 E* u    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
) B7 u, m. X1 d& v+ }. X& R% T    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
" N; }1 D1 W( Z& [' U    @database_name = N'account',                     -- 指定数据库名称
& S. P+ i9 a& H" E2 o2 q) Y    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)9 y# ?; U/ @& ^1 B7 o  ?7 @/ L+ L
    @retry_attempts = 5,                             -- 重试次数
) [( z! g4 B$ d- R1 V    @retry_interval = 5;                             -- 重试间隔(分钟)
$ @9 Q7 t) [! r* eGO
0 w0 y1 M# u+ c# ?, q. v- P5 r2 H
-- 为作业添加一个每分钟执行一次的调度, j5 l6 F7 |- x3 v/ |  j' s
EXEC sp_add_schedule   m* h, @1 s: ]4 X) x
    @schedule_name = N'MinuteSchedule',             -- 调度名称
" M4 w* [/ X4 ]5 m" S    @freq_type = 4,                                  -- 频率类型(4表示每日)- V1 G+ E& N/ j$ K9 M% t
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行7 S% A  ^9 F& B* O
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
  k+ f4 R2 C" _& }1 v  O    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次): A4 A. |( V7 |$ x
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)) C: K, L1 g" k9 }
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
: n8 e  O4 M2 b8 V* c    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
: U& d/ I. ^) T: x    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)3 k; O  ~  E2 g: }( H' h+ C4 \, A
GO' X) ?: z( ?# @1 h  U& o' L) ^

9 {0 h. K  v! w0 Q( W" _6 h9 Y-- 将作业与调度关联起来
" h0 L4 {  e' s9 l1 V5 hEXEC sp_attach_schedule   `1 A- a( P; u# U$ b: @" \! J, q
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
% |- ~' S: T1 x% U' I7 i: |    @schedule_name = N'MinuteSchedule';             -- 调度名称
+ r7 Z* l9 S/ v' ^* ZGO
. Y8 Q9 O& B2 m% x
, R  f/ H1 `( N& I& t7 C! X4 q-- 提交作业创建到SQL Server Agent
1 D; m* o1 n* I$ bEXEC sp_add_jobserver
* D8 ]+ G, g, t* y: l5 e    @job_name = N'IncreaseUserCashJob',              -- 作业名称
. J0 o- e9 r% |2 V  @    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)'), t4 V$ j: v: ~: k$ Y  R
GO( B! l( m6 E6 P1 o+ S& @1 v/ k  V

# ^& y. S+ \- m; Y5 B4 ?$ H# q
7 q4 H3 Q( m' w* v( J3 F9 n; b% n2 G

; P: N. {+ Z+ c( j' t* H7 s' r$ g
% ]" O0 `8 K1 Y8 ?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-5-18 18:18 , Processed in 0.042205 second(s), 30 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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