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

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

[复制链接]

2

主题

75

回帖

891

积分

高级会员

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

2

主题

75

回帖

891

积分

高级会员

积分
891
金钱
742
贡献
72
注册时间
2024-9-13
发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------0 k2 I; R4 ]+ G+ l$ u6 h
USE msdb;
5 K7 \/ x! P0 L% ~GO
+ J2 J1 s, w6 ?, t) H
) }" H5 d: {$ \- B-- 如果作业已存在,则先删除它: R4 c5 s7 I) [  v
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
8 ~" j5 ~# @4 w/ U1 |/ n    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';. `9 f# n* O3 R4 H9 c1 V
GO
: G" t% E* |0 }! A6 H  a! v, q' z& s* e' I' v, Q+ c! ?0 l+ E& F
-- 创建新的作业
$ O; Q( Z  M  s- mEXEC sp_add_job # D/ k- C0 u% n: C5 \6 v/ `
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
9 z: j5 R: z$ J3 G3 F* O) Q- D    @enabled = 1,                                    -- 启用作业
% \! H( K% M# {, j  i* D" o5 f0 A    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
5 g* i0 A" p5 N    @notify_level_email = 0,                         -- 不发送电子邮件通知
6 ^# N! A- _7 L- r    @notify_level_netsend = 0,                       -- 不发送网络消息通知
$ [/ K' z3 n% c6 e# M8 E. q: S    @notify_level_page = 0,                          -- 不发送寻呼通知
+ ~" _4 L5 V; `4 x    @delete_level = 0,                               -- 不自动删除作业$ k) t) j' |7 k0 K' F. S9 @
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
7 ?9 N. W& s' y* O' j+ f    @category_name = N'[Uncategorized (Local)]',     -- 作业类别  k8 n( T  q# k( x4 G7 J; u" r1 d
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
" s* G, n- b8 @    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员8 Y3 S) r) C# I5 U- Q
GO5 a4 k6 v; Q7 e- N6 H# B& P8 ~

: d0 _' z; l0 t" p" I5 S; T-- 为作业添加一个步骤
5 T9 U9 ^7 `7 a# K/ s1 F2 l  CEXEC sp_add_jobstep $ B9 _  h* R, h; U; c8 @
    @job_name = N'IncreaseUserCashJob',              -- 作业名称' g& K) ~9 A; X: G" ~( ^2 K9 j
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
, t+ n5 G, T6 E  L& W1 K& Q    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
& J: U  u% m; T5 C3 {. `    @database_name = N'account',                     -- 指定数据库名称
% f! }9 m. z9 Q' t% P+ x    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
; K4 b2 z) A1 {& y; `9 ^# r    @retry_attempts = 5,                             -- 重试次数8 k: B* v0 L( g) g, [
    @retry_interval = 5;                             -- 重试间隔(分钟)3 U1 K2 S& G) ?  J. ~
GO& u/ [0 x1 c$ ]6 Q9 D- l

2 P" B: B9 m2 @9 R4 E% T3 J-- 为作业添加一个每分钟执行一次的调度1 Q: ]& x0 ?, F
EXEC sp_add_schedule / t; c8 o) F6 h8 w! q
    @schedule_name = N'MinuteSchedule',             -- 调度名称
4 |0 r$ e8 o7 t    @freq_type = 4,                                  -- 频率类型(4表示每日)
1 r; U1 b+ L5 p8 g1 Q4 z$ q    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
4 a1 G4 B4 ?2 O* R/ Z5 I    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
1 f& L' ?( N- n" N' ]- ^    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)- T, t9 p8 T4 C- `
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)3 s2 J8 ?5 u% A6 h1 j0 |8 u6 K
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)4 ], m0 P. t/ ~( {9 H& @  J5 p: \
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
$ p  f" |' J; o8 ]    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
6 t. F" Y  G/ [$ c- U' S/ C0 l+ H8 MGO! b8 N/ u0 r4 k* f' |* d  N& z% G7 K

. R+ w4 S% k) i! E-- 将作业与调度关联起来' ^( }# K) J% i
EXEC sp_attach_schedule
: @% `/ ^% G" D. x( a* T& W    @job_name = N'IncreaseUserCashJob',              -- 作业名称7 W; M8 d( p2 u, N! u: }
    @schedule_name = N'MinuteSchedule';             -- 调度名称7 F6 n: B$ G" e
GO
% s3 }5 x" ^% H" T9 M# [8 D
* ]- j$ N3 D. f9 }1 o2 T' e; n) r-- 提交作业创建到SQL Server Agent
3 Q* l5 B. C$ }EXEC sp_add_jobserver 1 \5 h# Q/ D' Q* z! h" {% N9 Q
    @job_name = N'IncreaseUserCashJob',              -- 作业名称3 |) A/ [/ j5 B$ Y
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')0 M+ H, B7 x; O* Y4 f: e2 T
GO0 P7 ]  [# _/ p7 x6 f* F) I0 t
+ s- L' j' y( P" y+ Z  Y1 ]% ^
7 r' u% T# {5 D4 g! k
& |2 E$ X5 Q5 i$ g
: U1 m+ H4 _. ]: y$ m" s5 [8 V& |

; G( u2 g9 n, w# [
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-11-1 06:26 , Processed in 0.062932 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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