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

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

[复制链接]

2

主题

75

回帖

870

积分

高级会员

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

2

主题

75

回帖

870

积分

高级会员

积分
870
金钱
730
贡献
63
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
- v. c1 z3 c/ W9 @# `: pUSE msdb;- O( j% s$ t2 |0 \9 @
GO
# p* R- A' a# \3 F3 ~  }' B* @7 H4 e( P& c0 E
-- 如果作业已存在,则先删除它( @1 F$ V& Q( L0 B5 R
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
& r9 H- F$ @) N6 [' f    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';9 Y: h! ^* x9 n* K9 _# B
GO
& C# F. o" X1 g# n; g8 m# I, k3 E5 J2 H6 C
-- 创建新的作业
1 C8 b" R% K/ _/ vEXEC sp_add_job
, T0 c: A" }6 ?2 T; Y& n/ o$ o    @job_name = N'IncreaseUserCashJob',               -- 作业名称( u# E, N: m  d; U" c( o
    @enabled = 1,                                    -- 启用作业+ P9 U0 A7 r- M+ Z/ n
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
, M* E2 y# J; V: l( w  c    @notify_level_email = 0,                         -- 不发送电子邮件通知4 c& i% O- q5 Q  A! x7 E
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
" W7 W% D/ }, M3 q; Q    @notify_level_page = 0,                          -- 不发送寻呼通知
& P0 ]  O3 ?" e, l    @delete_level = 0,                               -- 不自动删除作业
/ y- M8 Q& b2 F3 L# }    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述$ h" L( [# b2 x  W$ R$ M. q/ j
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
% @9 b4 b$ z0 v& p+ a    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
% y/ C9 v/ e# p' [6 e/ G    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员" o+ a# N6 f! u* k8 [
GO: u# `, H' Q- M4 Q! ~* h

! h" ?9 K2 o6 f# h" X7 p$ H-- 为作业添加一个步骤( w- W$ |( @( o* B5 G
EXEC sp_add_jobstep
+ t+ v* a! z- k6 c  R" T: j    @job_name = N'IncreaseUserCashJob',              -- 作业名称
- j5 Z$ n* n  O2 i% E* E    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
0 h$ e* j* _% l; }: F: i# [( |    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
' e+ u6 I  c# |6 {9 I    @database_name = N'account',                     -- 指定数据库名称8 b6 [! j/ n! A2 S
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
. l# r1 Y9 ~1 w) q' g! v% c, i    @retry_attempts = 5,                             -- 重试次数
) ^. @7 g' u" t0 S: g    @retry_interval = 5;                             -- 重试间隔(分钟)
, l: I6 j1 s9 |8 e2 y& AGO
0 A' Y6 J* A  h: H0 j) `# Y; W+ f4 V6 N9 K
-- 为作业添加一个每分钟执行一次的调度( M) M2 A6 a+ w) ^# \5 d
EXEC sp_add_schedule ' i+ A0 T8 c. q- ?
    @schedule_name = N'MinuteSchedule',             -- 调度名称& F; w5 X4 z3 {; P
    @freq_type = 4,                                  -- 频率类型(4表示每日)
% M8 D, ~" r0 F+ I2 i/ W/ v; z    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行$ \# Q, K) C5 p. y' Q& D
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)& h1 o* D: E. [8 ?2 ^: @
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)' y+ S, V% l- a6 `2 x2 I; w
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
2 ]5 y) R" l4 @7 c' J9 n4 l' S    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)3 k4 `: o: L2 }' k+ ]- s$ I# l
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)  P* Y: s/ G2 x! K1 A
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
0 b9 B2 E( K, s5 m+ n8 NGO
- A' j+ I0 A0 R! D7 l- H1 q8 h
-- 将作业与调度关联起来
- z! g" M( m- \& pEXEC sp_attach_schedule
$ B) L8 G, A$ m' D, B8 X5 W    @job_name = N'IncreaseUserCashJob',              -- 作业名称
& ]: L7 O* x( f! ~9 z    @schedule_name = N'MinuteSchedule';             -- 调度名称# W. C3 f' m& V4 r
GO" u3 d% z4 `* m* h1 K: t" K
" s# z' O  y1 c6 Y
-- 提交作业创建到SQL Server Agent/ G$ K5 T( Z# L8 r  y, y' L) r
EXEC sp_add_jobserver , i$ p7 Z; \* R0 B( m5 n/ v6 A- Y) N
    @job_name = N'IncreaseUserCashJob',              -- 作业名称# g$ \7 I3 [, Y! {
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')1 |/ q" F4 R" Y: f# F, h* z; b
GO
$ k1 F1 B8 l: h- \
" z* O* W' A! X3 _/ z# s
4 i* p' J6 ?8 ~5 `3 |' l9 G/ M% x3 N

  _3 e4 J+ F& ]0 p- k
3 H0 s, V+ b. j0 z' j
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-4-30 15:44 , Processed in 0.036611 second(s), 30 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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