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

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

[复制链接]

2

主题

75

回帖

867

积分

高级会员

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

2

主题

75

回帖

867

积分

高级会员

积分
867
金钱
728
贡献
62
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------8 F$ _; [0 C5 L/ K3 ^" X! {
USE msdb;# \5 u2 o0 ^2 Y9 P. s+ w* H
GO
6 E+ s  I7 \% }) B7 b3 w" n5 o. j  @5 d  E: L
-- 如果作业已存在,则先删除它
; b7 U6 E: C0 R' T# `: v. uIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
, S* q$ u; D0 j* i9 ?    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';+ Y: @/ m9 b9 d* g3 g5 _1 q5 X
GO
( e, d; c; d; q/ `' j1 p& g8 q0 y* M9 y% U2 r" K
-- 创建新的作业
7 o' i& {; K! IEXEC sp_add_job 3 A! E0 H1 P0 ~3 q& _
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
5 k- h' {8 a/ c" ?    @enabled = 1,                                    -- 启用作业
2 ~8 Y, M- V5 Z1 m  u    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
3 F% p2 ~( w: u3 s2 u    @notify_level_email = 0,                         -- 不发送电子邮件通知/ ]& L" g7 \8 l1 J  S8 E5 [
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
" ]4 v/ J; m) W4 M( T    @notify_level_page = 0,                          -- 不发送寻呼通知, R( A2 t9 ?- u/ Q# B$ h1 ~: \
    @delete_level = 0,                               -- 不自动删除作业
$ A& h& @, ^0 a! B+ q! ~    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
7 h( J! e# t' R% C; s% l    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
/ C. L* k* v5 k( W% K    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)( E1 ]( R; z" d/ W
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
' b) ~: x5 O, D+ d0 A' e  iGO0 X  N4 ~& V/ s' I5 d
9 T" M- F" _, Q9 p' \, |
-- 为作业添加一个步骤; [8 \* w  ?  V; T- ~1 y
EXEC sp_add_jobstep $ q& |% Z4 n( _
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
% g; K! y: r; m& D/ d    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
/ M* i6 y$ v4 T& z+ R4 N    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)- q6 [' C+ b* K6 u( `, ]
    @database_name = N'account',                     -- 指定数据库名称7 x/ M% j/ ]3 J9 ]. H
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程). q# l  ?) L1 {$ ?5 [/ D. _1 G4 Z
    @retry_attempts = 5,                             -- 重试次数: }" h( T+ L1 a: I9 T3 s1 H# c
    @retry_interval = 5;                             -- 重试间隔(分钟)& r! t; O* A% A- l4 ~1 m: b" E4 }7 d6 p
GO5 {2 R/ h  V: ?9 V& J8 L1 v

0 [) Z( K0 u" g3 }2 F-- 为作业添加一个每分钟执行一次的调度
9 f4 X6 ^2 g8 {( F- t8 sEXEC sp_add_schedule
% I; g2 `& i2 [- r    @schedule_name = N'MinuteSchedule',             -- 调度名称
9 y0 z4 W: H: x& a  Q    @freq_type = 4,                                  -- 频率类型(4表示每日)7 t; x8 b' P& E1 p0 s
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
9 }6 S- B) B5 F4 n: f    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)+ X+ I, ~" k( T1 I
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次); I# V4 Q0 J5 }8 V3 u. k9 w" t- r
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
( N. g+ m/ s6 i/ Z% @' s    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
5 k5 O) W" L% c* v# B5 h3 x    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
5 O8 l4 `( L% z    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
  r* v4 j9 n$ Q" C( nGO
- f4 Z+ P7 e2 C9 X9 P* J3 M' v2 K) I$ P
1 b' h4 \2 x9 _7 _3 I-- 将作业与调度关联起来
+ v5 s# W; ~$ }+ x; }; I. cEXEC sp_attach_schedule 6 k+ F6 c; O* a- u" R
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
" w" h" i# z) }/ P* w    @schedule_name = N'MinuteSchedule';             -- 调度名称" f" }+ L, a1 k7 ^
GO
) k9 d+ n' d# W5 R4 Z. K
1 w. d# A+ a- n3 @; L. s8 E( ~  P-- 提交作业创建到SQL Server Agent6 P) C# y( D9 Y  o* e
EXEC sp_add_jobserver
) i2 L, a  K( @) {6 k1 t    @job_name = N'IncreaseUserCashJob',              -- 作业名称
# Z$ r2 m+ g$ \$ b/ p  P* y7 `. g2 T    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)'); A! D* y' ^1 j- F% h
GO
/ C5 p' T6 e" ?; {2 Z2 @3 n. {

$ A9 |/ s) o% h8 o9 |# H, |6 H$ N1 |% ?& G1 U. Z7 a/ z5 M

  O# F; C6 u( m$ H% C5 \. e/ h4 T# x! A; |( i
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-2-16 11:03 , Processed in 0.143317 second(s), 26 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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