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

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

[复制链接]

2

主题

75

回帖

812

积分

高级会员

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

2

主题

75

回帖

812

积分

高级会员

积分
812
金钱
678
贡献
57
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
+ i+ G6 ]& F4 r2 k% pUSE msdb;7 J" ^! y: Q: ^* x; |+ `# ^. \
GO
/ E" Z% p+ _3 ]7 @' I$ t) ?4 P, [: D2 \1 y
-- 如果作业已存在,则先删除它5 Y, V% d' a, `
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
5 K- X) o) v. w: ^5 p    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';% ]2 Y9 y1 e" |% M) \7 r: C  Q( R7 X& x3 I
GO
8 }- s% U8 ^1 \' b3 u, z
& C. G7 u8 F' P9 `6 d-- 创建新的作业
/ g* @8 Z! g% U8 gEXEC sp_add_job
6 Y% e( ]! V3 \+ a0 L. _    @job_name = N'IncreaseUserCashJob',               -- 作业名称3 Z- t; E, q' D# H
    @enabled = 1,                                    -- 启用作业
0 H& }* H) F3 w" o9 d% B) ~- F5 \0 L    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改  [# R% U4 m2 Y4 w( B. {
    @notify_level_email = 0,                         -- 不发送电子邮件通知
6 b1 K9 w" n) x0 q: ]9 p. \    @notify_level_netsend = 0,                       -- 不发送网络消息通知
$ m/ _+ q; a& k, }    @notify_level_page = 0,                          -- 不发送寻呼通知
/ g. b* T9 W, f1 w. `& v    @delete_level = 0,                               -- 不自动删除作业4 a: A! `; d7 Y. T
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述- `+ D* y. Q/ ], e2 j& s
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
6 x( I# L1 O& K) D7 c" l9 L    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
, o* l8 l1 h: `7 ]; k    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
) Z- b  G0 ]# `& R% K) AGO# E$ c9 o! J& Z- Y/ Q  |+ v( L

) R0 K/ d0 t* l3 E8 V* D3 `8 t8 }-- 为作业添加一个步骤
- i9 o; C* }# N$ \EXEC sp_add_jobstep   Z) [* Y+ H7 E6 c# W, w" |
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
4 Q4 z: j4 h4 L6 V5 [" m& U4 ]    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称% {0 p! D0 s" h/ L4 c
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
! I7 U7 `/ C5 ~    @database_name = N'account',                     -- 指定数据库名称- V: }1 d& ~: x' @# s1 \
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)% ^" |" e6 G  J( T: N
    @retry_attempts = 5,                             -- 重试次数4 n& L) P/ i" I# O+ d; B4 n
    @retry_interval = 5;                             -- 重试间隔(分钟)
% G5 |% v& b5 U" R2 S. f' Z& k" {GO
; u3 Z4 Z# v$ k& C* Z
& A* S7 K. i7 z/ E! u9 y- \% w-- 为作业添加一个每分钟执行一次的调度
7 M! @4 I) I* q" v8 hEXEC sp_add_schedule
( a. [2 q, ?3 ]- w. P+ B0 k1 }) `6 A    @schedule_name = N'MinuteSchedule',             -- 调度名称
* L5 c5 }% k2 i* g% C" H    @freq_type = 4,                                  -- 频率类型(4表示每日)' |" \1 z7 k' I) i% u/ |
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
" h: V! C* i( C) m" E6 Y    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)% L; H7 u+ c5 `- }$ k5 Q, ^5 x
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
/ Y, j& }; n2 c9 L. t8 q    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)0 P& x  f4 w4 Y" m
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)  w9 i7 a1 n; U
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)* p- U; q# W9 F1 A/ a) z
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)0 [% F/ C8 G4 e) _( e, G# k# e
GO6 I1 U% l( D; M
% u3 _$ X- }6 C. g+ z& e
-- 将作业与调度关联起来
. r& I* z; g1 _4 L) }EXEC sp_attach_schedule 9 w2 U5 V+ @8 t1 j9 ]5 P( J
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
1 x* f* b% N7 V, C0 H* g' ?. o' X    @schedule_name = N'MinuteSchedule';             -- 调度名称- \/ r6 d$ E8 i1 V% ~
GO
& p5 L7 b' e5 x% R; f! i0 o  I
; z8 X3 h0 N8 E-- 提交作业创建到SQL Server Agent4 w  W- g5 A" `0 [, B
EXEC sp_add_jobserver   O. E* X; q  T/ ?5 b
    @job_name = N'IncreaseUserCashJob',              -- 作业名称5 `( P( \& Z% s' l
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
7 c* s/ V) _" I- N% o/ h- ~' DGO- ^0 Q/ G( m) Q3 l! p
4 I6 @" ?6 R8 Q  H. y4 ^! d
  x1 p/ s" l" s( }$ n
1 w+ @# p. W4 |- T8 @+ x6 S

3 e: z5 `* C4 U# j# F1 d
: h& F, q0 Y  w2 o8 Z* H1 e, O
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2025-12-19 12:52 , Processed in 0.086814 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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