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

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

[复制链接]

2

主题

75

回帖

812

积分

高级会员

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

2

主题

75

回帖

812

积分

高级会员

积分
812
金钱
678
贡献
57
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------" i5 l; e; m7 c: ^6 K' o! h
USE msdb;
% v3 [; ~9 j) N0 @1 R& X7 ^+ GGO5 j4 c& M5 a; t# ^3 V% H
, O7 M+ H/ b. `; |3 z/ I% r
-- 如果作业已存在,则先删除它4 T2 n7 w; _, h9 X2 C
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')+ o6 d* f. p1 q6 F
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';* s3 C8 u' x, \) p9 B- X. o
GO) W. |: d1 `) @; ^0 @3 e9 E

9 j4 Y* d& @7 S& c# B-- 创建新的作业
1 ~/ H5 t: z5 m9 q& f; W8 M1 VEXEC sp_add_job % P5 h9 W2 W5 U6 T1 M- g6 y
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
3 f* C5 D* K  x    @enabled = 1,                                    -- 启用作业5 @0 \+ F6 z" G
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
) w. H+ p& j) d4 Q' U    @notify_level_email = 0,                         -- 不发送电子邮件通知4 D  u- ~5 f4 d; j
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
& ]/ q, q. M2 m    @notify_level_page = 0,                          -- 不发送寻呼通知; @, j5 q# T. \, W- D/ |" Z
    @delete_level = 0,                               -- 不自动删除作业
8 B  s. v7 m8 s. S    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述  w! @$ o) ?# M
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
( R, z. h7 t6 y" r1 _    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)) I. ~; a% {7 O, K1 @* W/ I
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
. ~! D9 M5 E: y2 [: ]* E7 `GO' k( ?9 ^3 b- g# {. f( G
8 a# i, D) F9 r
-- 为作业添加一个步骤
- V1 X6 s5 i% P. N9 p, ]EXEC sp_add_jobstep
8 b& e4 Z! {0 s, b7 \* _    @job_name = N'IncreaseUserCashJob',              -- 作业名称
6 e  I6 `3 x2 P# b    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
: U9 i& }8 {! v1 V! d7 E/ i! ~$ c    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
& Q5 D! e' `2 a: P    @database_name = N'account',                     -- 指定数据库名称! K4 l$ K+ f& i9 r
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
+ r$ u8 j+ x1 C( l! O* F& c7 e! d    @retry_attempts = 5,                             -- 重试次数
6 L; |8 w0 c3 @5 \    @retry_interval = 5;                             -- 重试间隔(分钟)
+ m$ Q1 O* q* r* N3 B3 P7 L6 F9 R8 EGO8 d: H: u, C* k, D

" o: F* C/ i. Q6 V3 Z-- 为作业添加一个每分钟执行一次的调度: a8 F% K0 t8 ]# K# A+ K5 ?- z
EXEC sp_add_schedule
+ v2 Q7 t# S( E0 X: ^    @schedule_name = N'MinuteSchedule',             -- 调度名称2 l. D' ~, g- s) H3 A' M
    @freq_type = 4,                                  -- 频率类型(4表示每日)0 F6 s* N( g( Q3 m) `  N: r
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
4 ?' ]9 Z6 r1 J) w. ]" H+ |    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
7 Q& E5 l/ A) u6 l! `    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)' U: ?6 C) e. u. K9 G
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
  P# z4 e0 l% T3 O    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
$ M/ J3 {/ H0 ?* K9 Z6 x% K% u2 r    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)1 X' P5 |# Y4 @% A
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)- o* A& l2 _0 x  X$ q
GO
8 V1 r2 v2 h- c  W# Q) d- M$ y9 f- t7 T( f* V* U/ F5 V
-- 将作业与调度关联起来: H. y$ Y6 Y7 s, P- {: y0 N
EXEC sp_attach_schedule ) A# p# r. q4 \) r1 `$ {
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
6 X* ^  z1 Q# k9 t  S, d. ^" L    @schedule_name = N'MinuteSchedule';             -- 调度名称$ S' W8 i7 v) @( D
GO# C3 g, U( Z5 K2 Z9 m( V
' B2 d- h7 T8 Y& Y
-- 提交作业创建到SQL Server Agent
% D2 I" Q. B. D* A- b# xEXEC sp_add_jobserver
7 o$ z8 }+ w' G    @job_name = N'IncreaseUserCashJob',              -- 作业名称# j* N: g+ g1 V% K: |- S9 j
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
2 _/ S  t" v  `GO+ {6 D! B3 W/ S" T4 X, u  A$ N

+ z; ?7 g1 m- D- R/ m
7 a; X, o" F: s& Q, B0 p
6 g  n- O; l9 @- C5 n+ ]: ?5 S* v+ M# `  p5 f+ h
- y8 t( j: s& n
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2025-12-10 13:10 , Processed in 0.068927 second(s), 28 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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