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

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

[复制链接]

2

主题

73

回帖

707

积分

高级会员

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

2

主题

73

回帖

707

积分

高级会员

积分
707
金钱
582
贡献
50
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
, O0 l7 f9 N; O2 ]& ?& nUSE msdb;
7 B2 x2 e* W, P; w& J' qGO
0 n9 ^+ V5 d9 ^8 P7 }6 {( R! d: v! p5 _3 {
-- 如果作业已存在,则先删除它
" {/ z4 o1 q. G6 gIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
9 L$ }3 O4 L! w    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';3 q9 T1 e  S7 F- I
GO' w' Y% [) k4 B5 n9 I

+ R+ U% S& ~' P4 k+ S-- 创建新的作业5 e7 u* u: a5 {/ d( J4 o
EXEC sp_add_job 5 z$ p. P  X1 ^* {0 D
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
; f0 A2 [5 w# k/ x0 Q) t" y    @enabled = 1,                                    -- 启用作业+ \8 n, z9 I' \; p
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改' e% P! d6 X  Y) t3 G9 I: U
    @notify_level_email = 0,                         -- 不发送电子邮件通知
# X+ f/ J: R5 J: N  B4 u+ U    @notify_level_netsend = 0,                       -- 不发送网络消息通知7 @0 |/ }2 [& k, |
    @notify_level_page = 0,                          -- 不发送寻呼通知. g0 r+ T, Q2 }7 Y
    @delete_level = 0,                               -- 不自动删除作业1 S7 b0 n" p+ g8 E2 ~9 l3 M# f
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述* w. Z' s+ \4 C3 S
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别1 r, J8 m4 l& B$ s- W, }
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
0 b. G7 f  O) g7 ?6 |    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员1 J# }, y1 ]$ D& |! ~- c& G
GO" K+ n( f  V, u. e

4 g5 o0 a4 E; C4 ^5 N8 r-- 为作业添加一个步骤
6 B/ ]) s8 F' P# QEXEC sp_add_jobstep
  f, ], S$ Y4 I7 q( i7 r    @job_name = N'IncreaseUserCashJob',              -- 作业名称
& x4 c) c* j  R# n4 ]+ G& D. G0 Y! @4 ]    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
1 i& i4 H+ x8 C: h. A    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)5 {; L- U% G" `/ f: Z5 s
    @database_name = N'account',                     -- 指定数据库名称% a) N8 v' D5 g8 s3 [
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)8 k) `  X1 m+ r
    @retry_attempts = 5,                             -- 重试次数
5 L! R+ A- _0 |    @retry_interval = 5;                             -- 重试间隔(分钟)! c  s3 j4 Z6 v  ?
GO- `$ L8 X) m! E, D, s. F$ D

0 r  _/ d0 T7 W$ j$ `. `4 T/ t; ?8 G-- 为作业添加一个每分钟执行一次的调度- [, s/ z6 ^6 `* E' C! |" @4 d# W
EXEC sp_add_schedule
4 V$ x0 w5 S9 Y6 k; |    @schedule_name = N'MinuteSchedule',             -- 调度名称
4 n& X8 X. R1 f9 f3 T    @freq_type = 4,                                  -- 频率类型(4表示每日)  W1 B" k  F+ Z0 T2 o- l( s
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
( Y) Z$ U" e* m    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)" S- @% E6 E( u4 C
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)5 @+ J, a, `3 t2 {3 S0 [
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)) v/ {1 c7 e4 I5 B: Y
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)' ?- S- U/ |$ `/ I
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
) L" L* U4 f7 w' R" n7 ^& i9 u    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)+ B$ C% j+ v9 A  s3 y; G
GO
3 A: a; l3 J4 ?( O) l, h- @2 h& t
  r7 m0 x5 y6 V1 }4 i8 V  F-- 将作业与调度关联起来; Y. R/ }' G* m# l3 M/ x
EXEC sp_attach_schedule
3 ?( o/ H% }2 @% s/ l$ h% O$ Q    @job_name = N'IncreaseUserCashJob',              -- 作业名称2 r  p& ]  s, h3 u% R. S  N
    @schedule_name = N'MinuteSchedule';             -- 调度名称
/ E- H1 w9 s) o' f2 U2 k! f& tGO
* n% r" e# u! F! f2 G
# r- l! f. ~: K6 G& A-- 提交作业创建到SQL Server Agent" d5 U% A5 s& N" v: ?* B) O
EXEC sp_add_jobserver
& n  P" q& n$ n, \* e8 a: ^% U    @job_name = N'IncreaseUserCashJob',              -- 作业名称, k6 A. q! I! T: ~; A
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')3 ~4 |8 Q! C) ?$ ]* q, b
GO: ^  K* t6 x8 u+ p) k/ S
9 K) i) e8 ?! m, @: K* I1 f

; Z1 _8 \0 ?( Q4 v  G2 U" V0 s: m1 S1 ^! V6 Y9 g' R1 f
; t1 M9 G# P. H3 J( ?
% m, B3 J4 Z% }4 x# P* m& G7 n: N
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|EGameol

GMT+8, 2025-7-6 01:05 , Processed in 0.047809 second(s), 28 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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