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

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

[复制链接]

2

主题

75

回帖

760

积分

高级会员

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

2

主题

75

回帖

760

积分

高级会员

积分
760
金钱
630
贡献
53
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次------------------------ Q4 @' K- A; @6 K7 B7 E
USE msdb;1 Z: w6 y% y; v: \3 `* u3 e; U
GO$ B& x+ f! h3 s5 T/ a1 q5 Y7 f

& _" n4 g, w' Q7 Y/ Z8 i0 z! t- W-- 如果作业已存在,则先删除它
2 p+ Z0 D) P, c5 s& xIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob'), ]% o* K& p( v& X: W2 Y% ~$ u
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';2 M' s8 l6 q1 K& M
GO6 ?6 Q! M& y7 r: q' P
0 P$ G! n. z) Q4 n# q8 H
-- 创建新的作业
1 q0 K, G" y1 n+ ~( J' TEXEC sp_add_job 9 K2 ~+ Q) f+ i$ I
    @job_name = N'IncreaseUserCashJob',               -- 作业名称3 n) O2 [7 O$ c" z
    @enabled = 1,                                    -- 启用作业
9 c' u- f' d) W6 T    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改- {9 w; N. X0 y; ~2 A
    @notify_level_email = 0,                         -- 不发送电子邮件通知. p6 r( W# R+ o! [$ k
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
* b' H( T+ ?3 `7 U0 [  S* `    @notify_level_page = 0,                          -- 不发送寻呼通知
4 o9 v" B3 k2 ^6 d    @delete_level = 0,                               -- 不自动删除作业
2 `6 V& M9 ?% S% G- V    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述8 t1 W, D% v* w" p( A: h- R/ }& o
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
8 E9 y0 e+ Q8 O  S! w% ^- s    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
# H$ b  f9 @& K9 ]5 ]    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
4 p* G, d8 g" p( YGO' H- a; n2 A4 _6 ?' Z

4 {2 j6 a' Q4 `$ c-- 为作业添加一个步骤
2 {( M/ M- c+ n9 \EXEC sp_add_jobstep
3 o! g- e* k. U( a3 _    @job_name = N'IncreaseUserCashJob',              -- 作业名称
3 i- L, @/ W: O) }+ z: I: Q2 c    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
- A- t; f/ A6 P    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
' n* V) C2 T& f: q+ i7 z( z2 b* C    @database_name = N'account',                     -- 指定数据库名称
- i* @8 e6 A* S) {    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
' r7 k& F; W% Z0 H; J  o    @retry_attempts = 5,                             -- 重试次数
/ \& d) m7 m! t) T7 |    @retry_interval = 5;                             -- 重试间隔(分钟)* M) v% ?# X7 t! r6 h! k& q
GO" {* ]: q6 a( _8 ~; U+ U* c( A

1 D3 l% p4 ]4 a! t( p& u-- 为作业添加一个每分钟执行一次的调度
7 n- J% P9 q, w& I$ d( ]* ?" oEXEC sp_add_schedule
0 e3 v5 {, ]$ D    @schedule_name = N'MinuteSchedule',             -- 调度名称$ a. O1 q: p/ ~) @. G* ~
    @freq_type = 4,                                  -- 频率类型(4表示每日)
0 z, \8 m' ?$ j; C5 R1 p4 X    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
8 a+ ~& o5 T2 T) f/ D" H) e/ b6 m% ?    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
( Z& ]/ s$ ^/ g9 E    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
: E  {3 z7 J- n, Z1 X& E  g; s    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)9 [' K) N" A1 C4 d; s" X+ F# {, b
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)/ X+ }9 ^" G  u* o2 _# I4 q+ y
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
4 h+ p8 c) h+ ^* d    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)! w6 ?0 T4 q) f3 Q  T) W
GO
- g* K+ O) s# q* o
- `6 t2 p3 r! q-- 将作业与调度关联起来( P6 J2 T; ]( m
EXEC sp_attach_schedule 4 @& Z$ q  h( N1 P; q
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
5 h2 i& V# Q3 l! Z    @schedule_name = N'MinuteSchedule';             -- 调度名称# V. S) N$ ^- Y
GO
  }! @: w9 \. M7 E% Z8 K6 P
: n# O5 M& L7 Y( V-- 提交作业创建到SQL Server Agent
$ Z, d. L9 M+ J8 c- e2 @, C3 fEXEC sp_add_jobserver 9 ^/ K# K9 y: i* F+ z
    @job_name = N'IncreaseUserCashJob',              -- 作业名称0 {9 W! W' {4 E% `
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')2 `8 t9 C1 I% O* D- R
GO
+ I) @- M7 B9 j/ F6 m  M: R# P7 ^/ R$ l

5 G6 H; x8 I' W! N& Z
, E+ b6 G) G9 M, R9 i  R  `$ b+ k# T7 E, [, Y

( T8 z3 K. k% M* p
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2025-11-9 01:11 , Processed in 0.049018 second(s), 27 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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