找回密码
 立即注册
查看: 2550|回复: 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作业计划每分钟运行一次-----------------------! e$ f" D7 n! ?1 }
USE msdb;
3 b5 k) W& |& N( k# YGO
: j  a$ ]6 g4 a# k+ C4 ^: p% r$ C6 |( a
-- 如果作业已存在,则先删除它+ V3 H4 t- U9 d6 z
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')9 O- n- C9 V5 B4 n( O
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';3 Z, B! I) n" O1 o0 u4 v
GO% U  a8 \. @( @( ~$ W# B
4 M9 _1 y6 T8 Z1 ^1 m# S% k
-- 创建新的作业
% [; c: t. x3 h. w; a9 UEXEC sp_add_job 3 c3 s/ {" N# B. G  ~. I4 S2 U
    @job_name = N'IncreaseUserCashJob',               -- 作业名称1 F, b. f1 d+ o
    @enabled = 1,                                    -- 启用作业
5 L6 Z* ]) d6 i+ n$ d8 H    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
8 t5 ~1 S. Z" G) v6 p    @notify_level_email = 0,                         -- 不发送电子邮件通知, M) G" J9 x  D8 F/ d7 S3 p0 T; Z6 R
    @notify_level_netsend = 0,                       -- 不发送网络消息通知9 S/ s0 F& @/ ^& `  _5 P# N! Y( I
    @notify_level_page = 0,                          -- 不发送寻呼通知
* {) H6 I3 l) I+ h- C    @delete_level = 0,                               -- 不自动删除作业6 k6 c- r. R3 x- C, U4 }) A
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
1 q- t( |2 q, v' ]% s1 _. d    @category_name = N'[Uncategorized (Local)]',     -- 作业类别( f; L5 N6 G, d( q' V! F5 d) ~
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)! k* ~% j! R; [; f7 I/ n
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员0 m9 C- n& P7 [) ~% }  Q
GO' g; d- k+ c+ B! K' U

0 _( V: D4 U/ h( u7 R' J. y-- 为作业添加一个步骤
5 Y$ D) i% z% d* H% uEXEC sp_add_jobstep
2 C0 a# o, s& c9 I6 M1 h    @job_name = N'IncreaseUserCashJob',              -- 作业名称. q3 Q" Q: f9 j. j# `
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称$ ^) e% e5 k4 r, \
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
+ L1 K) V, f" P    @database_name = N'account',                     -- 指定数据库名称
  v4 k5 T0 `1 v# v3 m    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)8 H  c% J# w2 y$ S- j
    @retry_attempts = 5,                             -- 重试次数
8 L( E4 E! w, d" O8 Q" Y    @retry_interval = 5;                             -- 重试间隔(分钟)( ~: x4 T5 s) q% p  ]
GO0 }0 r! u* o  @7 _9 q

( f$ G8 ?% y+ r$ K6 B% M% w- e: X( F-- 为作业添加一个每分钟执行一次的调度
( [4 q3 o( a( Q$ UEXEC sp_add_schedule
/ t' |) }$ f, h, D; `    @schedule_name = N'MinuteSchedule',             -- 调度名称
4 O: \  x& E+ n8 Z2 t5 x( A& `+ N    @freq_type = 4,                                  -- 频率类型(4表示每日): m: D  U6 q" K# @( h1 q6 u
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行9 s* _2 _% ]: j7 w) T
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
) P, C6 O1 x! z' G, y    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
/ A  ^( a4 n' P4 h- E    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)8 d5 r8 X' f, F3 p& I5 x
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
, c1 Y) k6 _/ V9 H& F    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)+ C  d( G9 H4 @9 E2 T1 X. ^3 s7 J
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
; a* H% D  [" Q2 F* tGO1 Z$ u$ U) r! j

& H5 I0 M7 t+ @/ n-- 将作业与调度关联起来
+ n* n% N# F% e( W2 w7 [EXEC sp_attach_schedule : N5 R+ [" G( `# F8 S) c
    @job_name = N'IncreaseUserCashJob',              -- 作业名称- k# k, |  i4 Y; w. H% z/ z
    @schedule_name = N'MinuteSchedule';             -- 调度名称! y. i( j0 U0 F' q% O9 X
GO
+ }& b' }% j4 J7 A; U7 _* r9 B* ]; j
-- 提交作业创建到SQL Server Agent
6 ?, J/ a% Z2 i* }EXEC sp_add_jobserver
  h8 C) W5 A: q4 V% I3 P    @job_name = N'IncreaseUserCashJob',              -- 作业名称
$ d0 L# x9 ]6 Y* y1 i. w    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')9 x' `$ g4 v1 n( b' `" e1 F
GO
* s5 j0 w* X4 L8 o$ y2 U* {1 m7 [/ {) w

& {' {$ g+ K  @2 v1 f
/ p: m- R: E' ?6 M+ P; ]- y, I9 v" G2 X& L  r
& I( H- `  b7 x) t- q, V
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-5-5 21:51 , Processed in 0.027209 second(s), 28 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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