找回密码
 立即注册
查看: 3023|回复: 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作业计划每分钟运行一次-----------------------
; j  G, ^" y) H) U) hUSE msdb;: f4 Q) d/ m5 D* U  C9 e% }7 q9 X8 W
GO! C# p3 X. t% g- S0 ~

+ D' X6 d' r# q" c$ l-- 如果作业已存在,则先删除它
6 J6 b7 B7 u" E& sIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
; p7 e* |" R9 B9 T    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';! |; ^! J1 `6 y+ h8 r" ^8 i
GO2 U0 B5 W, f6 I7 h' O7 u

+ Y+ t* L: S: i4 j# o-- 创建新的作业
6 t  e$ Q' U/ Z3 R6 i8 q$ l- yEXEC sp_add_job
$ _% U2 k% G0 t: _! x    @job_name = N'IncreaseUserCashJob',               -- 作业名称0 t2 j: o3 W$ s: o8 q  M& i& n
    @enabled = 1,                                    -- 启用作业
; H9 E5 h' m, I: u# i+ `    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改. l: k4 H: S. x
    @notify_level_email = 0,                         -- 不发送电子邮件通知
6 \- n; p+ E& v( r    @notify_level_netsend = 0,                       -- 不发送网络消息通知
, g* R& V; g8 X4 Z7 L" E    @notify_level_page = 0,                          -- 不发送寻呼通知
4 u. q" A' M0 G* X4 b3 H$ d; y6 b    @delete_level = 0,                               -- 不自动删除作业( r; H, W/ V, t+ F
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
6 Y, ~$ W, v( ?, |' ]/ i    @category_name = N'[Uncategorized (Local)]',     -- 作业类别# Q9 K) s& a+ m
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)7 Q. v# `0 ?& j  O6 x4 \
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
1 D/ H% O# q0 rGO( ^" ]: U" o* g; N

( M# N5 I7 Z% h2 J. U3 {8 [3 r-- 为作业添加一个步骤
4 w0 x5 q8 ]# L' H* _EXEC sp_add_jobstep ; B; A: x  c# k3 [
    @job_name = N'IncreaseUserCashJob',              -- 作业名称; G1 K% w2 t: g7 K+ K+ f
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称8 G6 g" R/ n! I
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)' v5 J2 E. S# W  m5 ~+ j2 e
    @database_name = N'account',                     -- 指定数据库名称
: R# F8 k* h( v, u5 u    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)* ^9 i. _: w6 Y; g/ G0 {
    @retry_attempts = 5,                             -- 重试次数' M0 t% ?% I; }
    @retry_interval = 5;                             -- 重试间隔(分钟)
" r* Q2 x1 K0 l0 jGO
& R/ V& r9 M; A4 Y8 P: n5 C: L& P5 q4 x7 T$ R% A* _) m: O9 e, K/ [
-- 为作业添加一个每分钟执行一次的调度9 p* ~5 W* _1 b) f% ?! D
EXEC sp_add_schedule
8 m( Q. H6 N) H! M9 E    @schedule_name = N'MinuteSchedule',             -- 调度名称
( u% R2 [8 l& ?4 a4 I  |8 ?6 m    @freq_type = 4,                                  -- 频率类型(4表示每日)
% z0 V4 \4 F- {  @' S. y1 o& e9 b( H    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行1 L8 u7 g" {% v" l7 J1 i/ v* [9 P* [
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
0 @4 m, |4 t" w1 K    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
0 M9 c5 e9 ?& u    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
$ S, U$ C9 r; X  ]  D    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
$ d% I1 ~0 q3 V% w1 |: H    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
8 I( i) H$ V- h4 _7 E' i* c    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟): d; A3 i- B$ ]/ i
GO& ]8 e8 c4 P0 S8 v
+ w  t' n& i  Y) I; a  P5 O
-- 将作业与调度关联起来$ A& v4 b$ _+ O
EXEC sp_attach_schedule
' S7 [/ V& o; c+ m& n9 s( H" w    @job_name = N'IncreaseUserCashJob',              -- 作业名称
( d( o8 s7 G' U) x" y8 [/ j) y1 k    @schedule_name = N'MinuteSchedule';             -- 调度名称2 Q* e/ p) ]' g+ r+ }! w% [
GO8 K; E  Q0 I& s1 n* b5 |

; }* o2 y+ R4 }  L+ i! E; {; K-- 提交作业创建到SQL Server Agent
; t4 R0 C9 u0 C+ [0 ^3 LEXEC sp_add_jobserver ! M. I6 P" Q1 L4 }! l
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
0 Y7 j1 {0 Z# s/ Q# W    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
7 D1 s6 \1 A' NGO5 o8 t- p9 G: v  Q2 K2 W; _

3 r8 W) Y1 r/ w$ {% B5 E  ^; b" Q& i
, j6 d' o* ?! V" a& j& T+ o( p3 d

9 j. m& R; d0 N) |
8 N. n/ q% P/ C. H5 d  A. n% s
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-7-26 19:49 , Processed in 0.059700 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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