找回密码
 立即注册
查看: 3524|回复: 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作业计划每分钟运行一次-----------------------9 w% M6 p) |- ]6 H. }
USE msdb;
6 W3 q. O. I6 E/ b3 i. [6 K: X& UGO2 E' z- ^1 P1 P& @& a5 G' c4 M

. x" w) G" _4 C( u-- 如果作业已存在,则先删除它
8 d7 h7 ?  P) X! IIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')7 F% K% ^+ I3 p" f& i
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';7 x7 R; p: y1 w4 H, U
GO
* T* s; _9 E  O8 b. o& c
# G# C4 n8 ?. M. z- i# l& C-- 创建新的作业9 y* c$ L0 d: s: D3 G
EXEC sp_add_job
" o+ e* i1 h" D+ |    @job_name = N'IncreaseUserCashJob',               -- 作业名称
; O9 u8 Q/ |& M  q: P- F) x" D    @enabled = 1,                                    -- 启用作业: F3 w) J8 X# D  j2 K0 s( j! H
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
% |4 k$ y6 {6 `5 [    @notify_level_email = 0,                         -- 不发送电子邮件通知# f( S. x, l4 |  F, A/ A' [( E! m1 }
    @notify_level_netsend = 0,                       -- 不发送网络消息通知5 r! D$ {; `) T5 \" {
    @notify_level_page = 0,                          -- 不发送寻呼通知: U8 j) o  U; |2 S0 V) \) f9 v
    @delete_level = 0,                               -- 不自动删除作业% q, O- n  d# G1 a* U( s
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述/ J. f+ q2 Y  F0 z' m- B
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
6 ]6 D5 |) L" j    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
  D! Y) g) g0 W0 l! x/ Z    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
4 d. j/ M, i# YGO
8 i1 j4 }6 f4 C5 V
' U7 W4 j* M1 `" [  {$ I) u7 T; Z-- 为作业添加一个步骤
6 e& C6 a( [4 M* j  y* O! CEXEC sp_add_jobstep
  w7 ^4 C% A; B6 T% R    @job_name = N'IncreaseUserCashJob',              -- 作业名称6 O# k0 q& h1 D( ~" G# N- p0 ^
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称1 H2 P* }- B& y
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
' {: a( V( n3 ]1 x% L    @database_name = N'account',                     -- 指定数据库名称
; d9 ^9 u3 }! D" d    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
7 t$ H& G1 m5 k8 F4 y    @retry_attempts = 5,                             -- 重试次数" m/ u4 ]3 y2 M6 d1 q8 X) |; N& s
    @retry_interval = 5;                             -- 重试间隔(分钟)  `# I3 _. h# |  T
GO. G9 u; S$ B- `1 {- @6 p

) y# L7 V+ ]  ^7 o1 @# Z-- 为作业添加一个每分钟执行一次的调度
" S' R% T7 I* v3 n4 L2 h  iEXEC sp_add_schedule . C  ?9 e7 L& F4 N& Q9 M- f+ Q
    @schedule_name = N'MinuteSchedule',             -- 调度名称& g" {$ y# r+ w; }- V9 v
    @freq_type = 4,                                  -- 频率类型(4表示每日)
: f' D+ e* m  B6 L: l7 j% h# Q- j    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
5 U* J$ }! w1 H7 s' ~    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)( m) m' i' [0 O$ \) k
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次); K" w0 x9 J  \! m+ g* U  l
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
1 X- S; D* W# t    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜); q0 p5 z/ U5 w' q
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)4 V: i) h# ^- C; f2 `! T
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
% B9 e6 E; Q6 F' k# KGO7 u2 p+ Y9 [* i! w2 p
& C; E' L8 K! K3 g
-- 将作业与调度关联起来5 O# A! k" r8 [1 @% w. y: Q; h
EXEC sp_attach_schedule
- j+ d6 \+ U2 [- P- S    @job_name = N'IncreaseUserCashJob',              -- 作业名称
* J" i& v( E2 Q/ I5 t    @schedule_name = N'MinuteSchedule';             -- 调度名称, v& w  s& }. S( W5 m. o$ ?3 H
GO" P: A+ d* E5 T9 o, E3 G
5 J7 M# O1 c0 r" G( L, h
-- 提交作业创建到SQL Server Agent& ~2 `; L% F' s- q2 [' G
EXEC sp_add_jobserver   N5 h( g1 I0 g& j' b* b& z' B# t6 }
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
4 v! Z; A! m7 A: |    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')" D4 T8 u) C& `" C) S+ j
GO
5 ^  V0 ^3 X8 e
2 m2 e+ f* c( q- q8 E, U& J5 V' I, b4 r' g7 f8 m. b

2 e, L0 s. q" R  x) ^# Y
& c! q, h6 a/ J- G
+ u' q- o# T+ C( @
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-10-23 03:58 , Processed in 0.052841 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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