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

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

[复制链接]

2

主题

75

回帖

825

积分

高级会员

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

2

主题

75

回帖

825

积分

高级会员

积分
825
金钱
690
贡献
58
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
( x! n% X5 y& {* x8 a2 qUSE msdb;& g# J9 v4 x2 ^# }
GO3 ^) ~. C# ]* l6 h
  M! ~( ]8 G, h+ X' ?
-- 如果作业已存在,则先删除它
4 k, m1 _/ @% i- H3 h  a3 m6 _  E- J% QIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')+ P  }7 z+ o! G# L' B
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
+ Z2 @: x! P  N) x8 Q& XGO. \' j* B3 e7 V9 d
3 G' G" V/ j2 U" L5 B
-- 创建新的作业8 `; P% K) |' e( {+ x, O1 F( N  }0 h
EXEC sp_add_job
- I! G  @: h; R    @job_name = N'IncreaseUserCashJob',               -- 作业名称- v) O; X; J9 \7 `, }
    @enabled = 1,                                    -- 启用作业. N: \2 w0 ]( O$ |2 J7 h
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
% H4 L$ @' g4 b! |4 z    @notify_level_email = 0,                         -- 不发送电子邮件通知/ J% b& \! S: Y) o$ L3 {
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
0 Z9 }" S" F  i! C$ m    @notify_level_page = 0,                          -- 不发送寻呼通知
" F  Y) ^6 r; r- K+ p' m. f    @delete_level = 0,                               -- 不自动删除作业
8 @  s9 g1 x. ~) M4 o2 x# ~$ S    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
8 h4 z" p0 H& A3 A3 k4 }    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
: Y' A4 M+ q# o# a% u; M    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
  V9 c' x  l5 B/ q+ D    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
# h0 e+ |( N& L2 [2 z) o2 rGO9 J7 R1 o) K6 G+ n

2 R  m/ d! |$ B8 C- G-- 为作业添加一个步骤/ l5 `& J  r6 y* L) F% u
EXEC sp_add_jobstep
& t5 b0 g8 K2 A% W' ^    @job_name = N'IncreaseUserCashJob',              -- 作业名称
- z3 }& P& v6 S    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称% ]% y/ b2 ?, i6 ]4 A# M+ A
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)0 n/ C! W3 J7 }; y% u& C
    @database_name = N'account',                     -- 指定数据库名称6 A5 {/ ?6 n2 a) c# m, J6 r
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
0 V( S# v* y2 L. K+ y2 U    @retry_attempts = 5,                             -- 重试次数
0 b+ q* O5 {: V$ Z/ B    @retry_interval = 5;                             -- 重试间隔(分钟)0 k# n7 v* Z6 w5 A' v0 Y5 j/ D
GO
1 _+ a) U. O5 Y$ A3 w- p3 |
1 @. j( X% ^3 l-- 为作业添加一个每分钟执行一次的调度
, s: j9 @& j" tEXEC sp_add_schedule 5 J8 F1 K2 ~1 C7 y; z, g1 z# M2 u
    @schedule_name = N'MinuteSchedule',             -- 调度名称
8 k& R% r+ {" B: m    @freq_type = 4,                                  -- 频率类型(4表示每日)/ y* W0 D+ e% |! {! x4 ?9 J# T
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行$ D# B7 d3 ^- Y4 ?1 J
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
" m' p- n( }& W8 k9 N7 w, W" @    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
" F* G5 j. B7 P/ Z1 C    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
8 R$ @; {* L- r4 P/ A6 }  q# x    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
4 u' h% M7 t! ]4 B5 m    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
, R. |; N/ k( N1 ^4 Q    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)$ M* _4 Q( j* s9 m2 Y& y# J
GO( `% K" o! P3 e

- H6 X( a' U- z-- 将作业与调度关联起来' D0 ]! [! l; x2 l. f; R0 A
EXEC sp_attach_schedule
. a: i- c0 i& {    @job_name = N'IncreaseUserCashJob',              -- 作业名称( K( D( K: _4 ?9 z! i) Y0 }
    @schedule_name = N'MinuteSchedule';             -- 调度名称
3 `7 b# m9 C: xGO  r# H  ^) L) G) k. M: A

) ~  @, y# |+ U# J+ A5 p-- 提交作业创建到SQL Server Agent
" {& |$ `& g$ D+ m% e& @0 P1 F8 \EXEC sp_add_jobserver
! ]2 y" ^+ }$ ^5 _8 ^    @job_name = N'IncreaseUserCashJob',              -- 作业名称
- ^3 O& n& m% y4 C+ ^    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')2 ~+ [8 l( J) D- u* X! k
GO
% Q' ]! F  M5 `* M  I
+ z9 Y  j5 k: O1 b
3 j+ }* b1 U0 d3 @; ^! X% }% L6 J1 F& ^' S3 }
, q" h  l7 ?: d' @; b* r

+ s# O- u: }: R. e6 I) w
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-1-2 01:56 , Processed in 0.069457 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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