找回密码
 立即注册
查看: 2542|回复: 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作业计划每分钟运行一次-----------------------
) ?0 D1 e0 g4 o* u1 {USE msdb;/ _* t. b6 o* R4 j
GO: U3 S3 X- R" x/ p7 P) M

  P" f5 T$ m6 Q# z" [6 Z-- 如果作业已存在,则先删除它( i& H9 E) l8 z1 t
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
, n/ g- w! I9 `+ Q& w# Z2 O+ ~& u2 z    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';% E$ u/ E6 s/ T+ ]
GO
$ m0 h% j2 [- J+ t/ O! t5 b0 t! U6 }
-- 创建新的作业$ o% u% c  H0 ^8 v% I5 f- i9 X
EXEC sp_add_job
1 I3 j8 G3 l: V) [1 k    @job_name = N'IncreaseUserCashJob',               -- 作业名称
9 J( W; C! r1 d& e$ Y  M0 n9 F/ k    @enabled = 1,                                    -- 启用作业+ r: T4 I" ^. [$ J
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
, N" b8 t5 _. V" V( Y- @    @notify_level_email = 0,                         -- 不发送电子邮件通知7 i' |+ P6 V( h( R9 G# K& e
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
+ K) d$ C3 t) p    @notify_level_page = 0,                          -- 不发送寻呼通知
7 z/ c$ K% p- C1 y1 f5 W    @delete_level = 0,                               -- 不自动删除作业% j$ H6 P; c. h. R- L
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述- }0 Z" I; ?+ g
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别& [. B7 y. c6 f+ L* W
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
! n- v/ f8 H0 C    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员& y$ t) {+ ?* Y- f5 F
GO
3 u0 a9 T% y& Y0 O0 W8 x4 i- i8 Q( J$ p% X( O) H
-- 为作业添加一个步骤
/ E1 h9 N: ?9 o& I2 l6 w# SEXEC sp_add_jobstep
3 S1 S4 p% U# A+ n    @job_name = N'IncreaseUserCashJob',              -- 作业名称
' q  s+ }- n# c" F! M    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称0 g4 V4 p6 x7 g6 G) M1 S! Y1 k
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)/ Y1 y7 k! g8 l2 N  E
    @database_name = N'account',                     -- 指定数据库名称
  P* h. t5 x6 q( l2 H9 g- G3 ?: P    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
% w" Q  |, _5 I# S- {. M# l    @retry_attempts = 5,                             -- 重试次数
+ H' q' b2 F- _$ d# e2 U    @retry_interval = 5;                             -- 重试间隔(分钟)3 w6 x- i' \) m8 @7 d2 N5 u+ z
GO
" d! a$ a+ u/ V) X. I. ?/ n8 W0 P- }7 b4 J
-- 为作业添加一个每分钟执行一次的调度2 {% k$ k0 f; z7 N# N
EXEC sp_add_schedule
: i6 k; F& k; J! o3 r8 ]    @schedule_name = N'MinuteSchedule',             -- 调度名称0 w9 P) F0 h! h7 T& X& R! Y
    @freq_type = 4,                                  -- 频率类型(4表示每日)
- C+ a$ m% H6 B  b$ ?) N! R& L1 Y    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
9 W7 {4 Y$ U( q    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
; e' {3 N2 {3 N$ t/ H5 o( n0 G    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
/ e1 c9 A( D) g5 L4 O. X3 J    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
1 q' I% I: A2 o5 a+ w9 z    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
5 I9 y5 O) b4 ~+ o5 C8 [  O    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
" R& d0 U( q6 F    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)/ z; w! A* F9 \& ]/ B$ S, w9 G& W  o
GO
3 i4 t! Y( [" H. k# m/ m. v9 _% O6 N, A8 X! {- V
-- 将作业与调度关联起来! o, |/ y  j. [; K- ^) ^$ U
EXEC sp_attach_schedule # Z6 ^) ~0 o( r% v" V
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
6 P1 |! F6 j6 w3 h. v    @schedule_name = N'MinuteSchedule';             -- 调度名称8 h) g( m" j$ f8 r
GO7 Q/ p5 P; C9 }7 W0 N

0 g2 n# L% ]6 N, s3 B7 u-- 提交作业创建到SQL Server Agent
6 I7 y1 h$ m5 i7 {, ]" D& jEXEC sp_add_jobserver 1 I: p: h3 t3 C; ?+ ]; @
    @job_name = N'IncreaseUserCashJob',              -- 作业名称* a& v( J. q5 l
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')# I/ ~9 c* n8 |" p$ y: x* L* W
GO/ C3 k7 y2 J4 Y$ @

3 ]" s' K. V2 @0 I; ]3 [/ i9 K9 ~( e+ y$ Y: m+ u! j
! f' ]) @# ^- v3 R: l6 M
' X2 a  z* C: A

, _! k9 W) y& q
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-5-4 17:18 , Processed in 0.037073 second(s), 30 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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