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

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

[复制链接]

2

主题

75

回帖

883

积分

高级会员

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

2

主题

75

回帖

883

积分

高级会员

积分
883
金钱
742
贡献
64
注册时间
2024-9-13
发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------( W1 M; C" o  C, \1 k' u* ~" e$ y
USE msdb;
( I7 ?( d2 A: S7 S: SGO( b+ r  a; W5 M2 b5 n8 O

3 n" g, o' A* x  l-- 如果作业已存在,则先删除它  `. k6 B% E0 A' ~# y
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')/ U" Q/ g7 w2 Y5 A# r, d
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
! H+ j% Y+ X, X! u5 g/ wGO1 ^; n0 J! C% v
; ^" x% h2 T+ q1 o; \) v
-- 创建新的作业
' r$ k: O. C  `8 a) ~EXEC sp_add_job . F* X+ x8 M# ?: R7 K) w$ X
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
0 p1 X! q- Y. ~9 z. {8 T+ x    @enabled = 1,                                    -- 启用作业$ ]1 k2 M9 U3 Z. Q
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
1 ?* I' q& H5 J6 O2 T# ]' H, q! }* S    @notify_level_email = 0,                         -- 不发送电子邮件通知
" k+ L6 s: _; k6 t4 w  m$ o    @notify_level_netsend = 0,                       -- 不发送网络消息通知
1 W$ P: O6 g& {( a    @notify_level_page = 0,                          -- 不发送寻呼通知
1 c( ]6 j& D& `. @    @delete_level = 0,                               -- 不自动删除作业9 h) K/ Y4 ?  B( Z; {
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述3 p# ]! m) A- `) P) g
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别' o8 l3 Q6 v7 A* C5 ?
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)( O8 |1 k; D# ~' W. d7 u" J. h
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
4 O  G8 G0 ^8 |3 e' G% j* E5 R$ mGO
, r  R- |7 O: A7 o$ M" C
! ?4 {0 p9 Y: b$ W  J-- 为作业添加一个步骤' j; g1 `" ]9 Y6 z2 `2 n  [) b$ {7 t
EXEC sp_add_jobstep
+ {6 @% h, C% I4 d6 b/ O; c% T    @job_name = N'IncreaseUserCashJob',              -- 作业名称
4 d' Z! D/ K/ v: h1 j3 v6 ?: g    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
7 z( G7 Q9 Q" T. y6 ^    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)/ |, h) n. j: L) F/ m: o9 O
    @database_name = N'account',                     -- 指定数据库名称
, a- ^% L" e1 {5 u    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)6 e! L; i! W8 ]) {3 L
    @retry_attempts = 5,                             -- 重试次数
$ B8 r& G7 n- t    @retry_interval = 5;                             -- 重试间隔(分钟)
+ E/ ^5 ?. w: W3 N, OGO
) z$ i5 v" r' i8 u
0 b$ n, P& S, ^# c-- 为作业添加一个每分钟执行一次的调度
2 ~% d9 @0 I6 j# l! }2 n; ZEXEC sp_add_schedule
- X6 c! [- A, ^2 R0 S( q    @schedule_name = N'MinuteSchedule',             -- 调度名称/ c% K% ^! H! u9 V$ v- X
    @freq_type = 4,                                  -- 频率类型(4表示每日)9 o  R9 H) Z# d" K' x: O* F4 Y; Z
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行( J( D8 `, w; R4 P7 J: y$ I* z. n
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)( l" ~4 p$ [6 p/ q  e
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
4 a$ I/ Z7 }9 L' i' U$ r    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)5 y, F( d" [+ @5 h* T7 R, g
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
  k& I" i5 E' x, n8 W% F5 @    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
. z' r4 N, \$ H) p& U/ B    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
  p" w7 ^# c0 |6 y( jGO
3 H/ @* a# J. G( S/ z
* I% J, x- ~5 o' n! c% @; O-- 将作业与调度关联起来, y3 }; J* r' U8 @
EXEC sp_attach_schedule - t) H) Z$ `: V# c0 T( \) p1 A/ N
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
' Q% r) s, n9 ]    @schedule_name = N'MinuteSchedule';             -- 调度名称8 f3 \' N6 g- W& V, P4 F7 R3 k
GO
6 z+ s* n8 K$ S6 [+ N, X" w& T; j( [9 E6 b& H
-- 提交作业创建到SQL Server Agent
9 R6 L5 B1 e' Z" z% I4 WEXEC sp_add_jobserver 5 b  h* i) K4 ?4 V5 g
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
8 _/ F+ Q# v) e, `    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
' p- G- u! u6 {- y7 T* @; `& K: @8 L; lGO8 r2 w9 I& a: m9 r* c/ z/ k9 y6 a

7 L% h& }/ @5 s, H# l9 I' T3 |  e' c  ]1 r: N2 q

9 u9 ]4 T9 x. I6 \# H% S0 N
2 i# O* U  k5 B" Y9 [. D3 B% K, h% }$ g+ y* T; s7 n' o/ R
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-8-18 20:48 , Processed in 0.070922 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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