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

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

[复制链接]

2

主题

75

回帖

891

积分

高级会员

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

2

主题

75

回帖

891

积分

高级会员

积分
891
金钱
742
贡献
72
注册时间
2024-9-13
发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------3 Z+ j! ^5 `) f  [7 k. e* r3 G
USE msdb;7 ]5 W6 w9 D! f
GO
* H% G% k' k3 z% D/ i. H. W5 [! T2 B0 S" M  [, }9 t9 A1 W
-- 如果作业已存在,则先删除它
2 R9 \) z& f' [0 SIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob'). I" l0 V# g, x0 z
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';% g" H* I- c' ]0 ^: r
GO
4 ^% `# j6 a* q# e0 V# j3 z5 ^" @& ~% }5 F* Q
-- 创建新的作业
# [' n+ h& O: REXEC sp_add_job 3 O: U2 d1 p' [2 n& d' a
    @job_name = N'IncreaseUserCashJob',               -- 作业名称- ~2 {# F5 V5 T& B) b* q1 P* W
    @enabled = 1,                                    -- 启用作业& d' h- A' N6 f9 f: l' H
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
1 v) z4 J+ p) _" X+ G: l+ b    @notify_level_email = 0,                         -- 不发送电子邮件通知
( X  J9 @- h! u: x- b& i; y$ @7 E    @notify_level_netsend = 0,                       -- 不发送网络消息通知7 ^! P% f; w3 Z
    @notify_level_page = 0,                          -- 不发送寻呼通知$ k: c$ U! x# L0 ~1 d
    @delete_level = 0,                               -- 不自动删除作业+ e' K% `1 a" k8 m1 U, ^
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述' s4 p' k7 n5 [5 K: X: I' q) w
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别$ D1 F0 q' S/ T  N9 I. V2 h/ J4 \
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)0 x/ a6 w3 c9 q0 O
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
% l- ], |* s% ~GO
% |5 {1 Y3 s! h: r4 M6 k" j
/ v# v  u. R. @-- 为作业添加一个步骤8 U- b# x2 y1 h: Y& M" E, T2 |; h" h3 D
EXEC sp_add_jobstep ' F! `- ]& \4 E6 ~
    @job_name = N'IncreaseUserCashJob',              -- 作业名称/ g. b6 k/ M4 j% e/ _; |- @5 H
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称# ^* a% p% ^! v
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
" f7 X0 F4 F( l; Q/ T: _    @database_name = N'account',                     -- 指定数据库名称, O  f2 Z" `' V# Z* H& X9 B
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
+ A# F$ M2 t  n$ u    @retry_attempts = 5,                             -- 重试次数
8 a8 ]1 d1 N& W& Y( @. |" s  H    @retry_interval = 5;                             -- 重试间隔(分钟)
5 x  ?0 h- X2 P- g: j$ GGO
, u0 |* p" L2 p; A" B, n5 B# \7 x
-- 为作业添加一个每分钟执行一次的调度
& M  U% D: ?* ]9 n$ [- ^- C: K" eEXEC sp_add_schedule
" J& y) a6 V+ r, \    @schedule_name = N'MinuteSchedule',             -- 调度名称" u/ g0 ?. c7 p' B7 L; u+ N
    @freq_type = 4,                                  -- 频率类型(4表示每日)% u- Y& \* E" k
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
" k) v; u" ^7 b6 U* ]    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟). k# I& ]( A+ y6 E# R5 N, M; J0 B
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)9 w) I) U; w% e# ^. \- m* R( s
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
3 Y5 p. a. o/ l7 {    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)9 r( T) c7 {- p/ m4 `6 q* L. r
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
* C, Y% Q# K7 Z: f6 j  G: q    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟), Z9 P; W( q1 Z" ^: P8 A, ~1 `/ k0 ^
GO
: q* j1 s' _8 e6 \2 P, j$ d1 }: f1 o- ], z8 m5 {
-- 将作业与调度关联起来
  t1 ]& P5 z( N  F/ M5 CEXEC sp_attach_schedule 5 x  \0 C  p/ L
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
0 ^) N7 e+ L: D; S3 n4 N) `- e0 p    @schedule_name = N'MinuteSchedule';             -- 调度名称
4 ]# t6 ]" i% c9 h$ @. d2 e6 DGO
- B6 L8 y0 Y1 {; k6 l5 w2 @# P  ^) F7 \# m! j  K3 X6 O
-- 提交作业创建到SQL Server Agent7 F: ]  Z  K4 M9 ^/ q
EXEC sp_add_jobserver 0 G7 ]4 w2 Z- D5 W5 X
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
- c2 l$ U* X$ n- h    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)'); C; y4 v( J  [0 M
GO1 S: [6 T" j# _, M$ @. m
, m; v7 f+ o; R% w! z. S6 S
3 F$ G& R' y, `2 k- v& B

% e  ~8 y' @0 M, P* k5 m" p1 a3 @/ S/ c, m1 }/ e
( {4 q+ G1 {9 s
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-10-14 02:01 , Processed in 0.051241 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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