找回密码
 立即注册
查看: 1913|回复: 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作业计划每分钟运行一次-----------------------
% m' K+ u7 d+ eUSE msdb;+ x7 D0 ?- ]4 {5 Z$ _9 c0 J
GO7 _  w( r" b4 ]
/ Z4 M8 k- M7 C9 f( [$ O& h3 {$ }; Q
-- 如果作业已存在,则先删除它
( z- `% F: b/ V6 G2 S4 m7 O2 {IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
+ o4 E7 i5 k  y. i: x1 a: i    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
- N6 S5 w6 X; TGO
" D6 }- _, B. a$ ~. p8 a, R
( b, {/ \- ?& m1 P, n-- 创建新的作业
% b# e9 ~$ v+ G! L( n7 G9 CEXEC sp_add_job
( l8 j) o  N/ ~$ I9 p    @job_name = N'IncreaseUserCashJob',               -- 作业名称, }' j% O2 H- J
    @enabled = 1,                                    -- 启用作业4 J( N( ?& G, A: a" H. u: c
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改- B4 X2 y* V* ]( f- X; Y
    @notify_level_email = 0,                         -- 不发送电子邮件通知
6 n" \3 ]9 _4 a: n8 D    @notify_level_netsend = 0,                       -- 不发送网络消息通知7 l! q* Z4 ^5 e1 v
    @notify_level_page = 0,                          -- 不发送寻呼通知
5 j! G7 l3 I& e/ W# R    @delete_level = 0,                               -- 不自动删除作业
: }' E4 |2 A( W6 T9 {% T: ~* r    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
' e% o. a0 @: v- B: ?( z$ A    @category_name = N'[Uncategorized (Local)]',     -- 作业类别* x4 ^5 F4 ~8 H1 o1 X
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
5 t' Y' @/ Z1 x/ j4 z  E    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
3 d  O9 I8 u+ J6 k8 y0 q, AGO: u* Y/ s  H' a1 w1 f

/ S0 ]$ M2 s" v2 V4 h% h2 \-- 为作业添加一个步骤( G' x7 B7 x! j& V* q- T. {2 W
EXEC sp_add_jobstep - u( i: A* D3 F5 _6 S
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
" S, D" B" ?! ]2 _: n    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称8 e; M* u/ l( }' E
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)9 C, }2 H# l' q( g/ s+ T4 s1 M
    @database_name = N'account',                     -- 指定数据库名称
/ v2 z# U: p* h2 U, m8 }3 }2 T    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
# E/ \) C! X" S) k3 ?+ l$ ^    @retry_attempts = 5,                             -- 重试次数
' h3 q! L; M8 R, F0 r    @retry_interval = 5;                             -- 重试间隔(分钟)
8 {$ E4 z9 B$ F- G: ?1 QGO5 N# C7 K5 X, @4 c7 w* Y

$ x# I- i% P5 {, C9 O& |0 q-- 为作业添加一个每分钟执行一次的调度. N. l/ R7 ~* N2 ]
EXEC sp_add_schedule ! m8 r, z. [' |0 S8 X% p* {
    @schedule_name = N'MinuteSchedule',             -- 调度名称/ Q0 U0 @" x' y& L; m5 k( Y: Z& x
    @freq_type = 4,                                  -- 频率类型(4表示每日)
$ E/ G' t! s8 S* \    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行( X+ t* P* ?! }
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟), L& K" ^/ V2 r+ O
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)9 R2 m4 V( [& B' L. F/ I
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)5 W! g6 q0 T9 D! ]/ u
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜). E7 J: H+ O# B6 c+ t& K+ Y
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)2 R( V$ ~& ]! I* [' I: Y  H' _
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
8 q1 j# Y# g) d4 a* U0 E* m; }GO. W5 y0 x- E1 v  V+ Z& S+ [( g
; ?" w% f0 j' b7 ]
-- 将作业与调度关联起来
1 x* z% _8 m% M  t$ ~EXEC sp_attach_schedule
2 B( T5 R  B6 x1 h% F- l7 D! k    @job_name = N'IncreaseUserCashJob',              -- 作业名称
7 K# O7 A2 _5 R- k    @schedule_name = N'MinuteSchedule';             -- 调度名称
) H% R1 E, m4 t/ C- \# m( tGO
2 s5 ]2 _7 H4 |9 i0 N2 Z6 R
+ X: n4 m% X, J0 d  Z3 z-- 提交作业创建到SQL Server Agent
3 }4 [; u. P4 t3 L; N" P+ gEXEC sp_add_jobserver
3 v2 Y9 H9 E, j! {0 L# P7 `    @job_name = N'IncreaseUserCashJob',              -- 作业名称
. v; C' w5 z, S) C; C5 @    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')% p4 p0 V4 o) f; U: [# H
GO/ K# W+ ?/ m' q; h

' I/ V4 K7 S+ M& _9 J
- Z2 R# f5 u. a! D
5 T9 P: |. q6 P- [2 @% k$ Z- A
" F' ]1 E. b6 Y1 Q3 s+ e0 K: n- Z" I/ S1 z
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-1-2 00:05 , Processed in 0.062965 second(s), 27 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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