找回密码
 立即注册
查看: 1557|回复: 1

[技术文章] 泡点每分钟增加1商城币并实时更新商城点数,13职业端测试可用,其他未测试

[复制链接]

2

主题

74

回帖

744

积分

高级会员

积分
744
金钱
613
贡献
55
注册时间
2024-9-13
发表于 2025-1-18 17:03:06 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 贡献 才能浏览

2

主题

74

回帖

744

积分

高级会员

积分
744
金钱
613
贡献
55
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------# m" c& T1 I1 B3 {- l
USE msdb;9 U: }5 F: Y- w
GO
( d' g; X: Z- |. C. }; t( S% Q" Q8 @. O/ G0 h/ k- l% Z# U' E
-- 如果作业已存在,则先删除它
% L" y7 Q3 t3 j5 k6 K- JIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
/ N! h  v9 F: P4 Z    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
. C1 @; c( x; }) s4 K9 d) ?) }GO; Q% G5 k& |6 h9 `
. ]: V# A, u# [* U7 t/ e9 z, f2 M$ C
-- 创建新的作业
/ T% M3 @* R6 O. @EXEC sp_add_job " r  f6 _) I7 @/ }1 j9 \: U
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
+ p3 G5 F7 l+ T( M  t; q    @enabled = 1,                                    -- 启用作业# G; j- T2 [8 t+ j3 K6 d0 z
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改, v4 j  G) w& D. `$ s, j
    @notify_level_email = 0,                         -- 不发送电子邮件通知
$ j3 U8 ^  b* t4 s8 |2 `% }    @notify_level_netsend = 0,                       -- 不发送网络消息通知# {8 S& K, M- g5 h6 }
    @notify_level_page = 0,                          -- 不发送寻呼通知
+ X: Y2 Z* Y* A; {" Y5 M  x    @delete_level = 0,                               -- 不自动删除作业
) d! {1 S) [" _    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
5 d) P: z9 b2 w' e/ y4 h1 m9 R    @category_name = N'[Uncategorized (Local)]',     -- 作业类别, c5 S. g4 G0 k* L' Z: z) ^
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名): C% k7 d  Q- }. S/ V: I8 m6 [% L
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
3 }, F! C: i% a) h: W% Z+ YGO$ u" |5 |9 r9 E( ^

( ^' L# B1 W0 T; s% r: `$ n-- 为作业添加一个步骤: z9 W" D& G4 @6 x
EXEC sp_add_jobstep
, y, ?9 B& I6 A7 x, Q! J    @job_name = N'IncreaseUserCashJob',              -- 作业名称& J4 ~' ~/ y% _( ~
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
) L; }4 d1 @( k. E2 p% r2 R9 }9 l    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)3 O* q8 V1 u+ A
    @database_name = N'account',                     -- 指定数据库名称
. N7 X9 u& f  S' f    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)# ?. j$ o( z- B2 @+ v
    @retry_attempts = 5,                             -- 重试次数
% p0 ?" n' V' F7 A    @retry_interval = 5;                             -- 重试间隔(分钟)
+ A% v* r  k) S. i6 R0 l5 pGO
6 }: C- f2 K' J8 l8 m* `/ u+ E4 Y6 R& ^3 _& c( l
-- 为作业添加一个每分钟执行一次的调度
/ U7 C; Y- K5 i! c+ _4 Z" EEXEC sp_add_schedule 4 G8 C! U3 E) s. b" O% }* ?1 o
    @schedule_name = N'MinuteSchedule',             -- 调度名称9 R! v/ o* J4 P# O
    @freq_type = 4,                                  -- 频率类型(4表示每日)
1 d% A) V/ j! A+ H/ E    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
$ R5 K& {+ |5 b3 @+ _9 ~    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
/ S/ D5 B: J  s8 `/ o# E7 k- ?    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
! h7 b" n1 Z- L2 ^+ V6 R6 |; P    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
; o' q3 K  D/ E8 C    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)# A/ T& _+ Y3 P$ R$ A2 `, c/ w
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)3 N  B0 L0 ^2 w; T5 \+ ]
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
" j8 o( n* k5 m- t+ FGO8 U( ]5 z3 M! C' s7 ~8 ~
* e; f! @# ^- X  l
-- 将作业与调度关联起来
( L! p4 q' g. P6 Y' [, k4 HEXEC sp_attach_schedule 6 q. T( o# U; [! o" |5 \
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
5 ~7 i/ k, ?% G, W. i    @schedule_name = N'MinuteSchedule';             -- 调度名称: g: G0 ^* s+ b$ _
GO" _$ j( ]0 u5 O9 b  l2 K

/ }* s" u! z6 i-- 提交作业创建到SQL Server Agent8 D/ z9 ~; ]3 K5 `# x$ ^
EXEC sp_add_jobserver # @# M3 q7 y/ N4 n+ j0 P- R6 _
    @job_name = N'IncreaseUserCashJob',              -- 作业名称5 L5 ?0 N4 b0 l
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
$ \4 W2 ~8 d6 h$ d3 q) ?# a" ~GO( r( u  A5 i/ r4 Y, m+ P9 `0 _7 @

6 q& ]6 H( j9 K0 V. T) h
. y# t( W5 r; U% |  R
! k* D5 U# w/ |/ i9 i* |+ C: r; P" n. ~5 n
. f/ k& J. Z) z
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2025-10-30 22:45 , Processed in 0.059082 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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