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

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

[复制链接]

2

主题

73

回帖

729

积分

高级会员

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

2

主题

73

回帖

729

积分

高级会员

积分
729
金钱
600
贡献
54
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------) M" }1 D0 z. X0 g1 c
USE msdb;7 x. T. Q$ j" }! d
GO
' R) q2 g& Q, F) x; l4 q; `5 `1 A5 H' Z8 s
-- 如果作业已存在,则先删除它
, {/ q/ i4 v( u; L2 wIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
+ p0 O6 |0 ?4 ?, k( I  R8 I    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
0 {2 g9 z5 ~: }& P3 F5 fGO! r  `7 \% ]- c: I6 O/ Z( D" B
7 z0 P9 Z& W8 Y( l/ O1 O
-- 创建新的作业
  p+ t1 E. @; S/ K, ~5 eEXEC sp_add_job
8 O% \; @% k7 {) A) L6 t& ~/ r    @job_name = N'IncreaseUserCashJob',               -- 作业名称: b: ~' r; y2 c/ Y2 i
    @enabled = 1,                                    -- 启用作业
8 }: F1 @" ^$ b/ p3 X% K3 B    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
, I; Z* }7 \2 o. _6 T) E' V+ @  y    @notify_level_email = 0,                         -- 不发送电子邮件通知
/ I; b9 \3 @. F7 B8 n4 [    @notify_level_netsend = 0,                       -- 不发送网络消息通知) T1 z$ u0 z1 h, B* t
    @notify_level_page = 0,                          -- 不发送寻呼通知
2 h5 @8 T0 U- b5 e' X8 X7 r    @delete_level = 0,                               -- 不自动删除作业
) b* }% {6 d' Y/ a    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
7 K/ a; L& [5 u7 X/ N. t0 M    @category_name = N'[Uncategorized (Local)]',     -- 作业类别5 H8 L) y9 H6 b' K* `1 R6 i. P6 G
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
* L8 o0 _9 i) J+ [* G- G+ h5 t) x    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员5 y  d( w! g% Y3 D! S
GO
  J8 d- ~6 z; D# |( q  I* p- u. {9 ^* d6 P
-- 为作业添加一个步骤6 F. t! U5 p/ A9 o+ a- u
EXEC sp_add_jobstep
  k: z! H' p7 z    @job_name = N'IncreaseUserCashJob',              -- 作业名称
/ K- y0 o! l8 u1 y) U( `  L    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称# \! N/ g9 {) t5 l* S+ T
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
& a: G  @# |# D# ~. n    @database_name = N'account',                     -- 指定数据库名称
$ [0 n% h, T$ ]    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
+ E, t  N6 A1 X- P+ i! C  t    @retry_attempts = 5,                             -- 重试次数) P0 A8 D1 v; Z; W7 F3 L# z
    @retry_interval = 5;                             -- 重试间隔(分钟)
% T9 p5 X( o3 h1 F- W# t! iGO
3 S9 b$ K6 ]" M3 U0 T( W' {
! d. g: c# Y" J( C: {5 S-- 为作业添加一个每分钟执行一次的调度
) Q: r) h/ P3 `9 y6 y8 C  UEXEC sp_add_schedule
" x6 @' b9 P7 r0 d% S. q    @schedule_name = N'MinuteSchedule',             -- 调度名称" j7 D- p( U9 E/ S' f4 W, ]) f$ o
    @freq_type = 4,                                  -- 频率类型(4表示每日)
4 m9 S: \4 f  l1 t- Y5 d    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
# d0 A$ s0 A: f    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)* W8 o: E7 l6 x
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次): }' F3 j) ^# O: Y# h4 V
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
6 P0 ?: t' O$ G+ O    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)2 [7 W% e; {& p: W& a" J
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)* ^* P. V8 `! B
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
. N6 o4 ^/ {- ^/ y5 `& x! hGO+ ]; n6 B. ?! s+ X& b
$ j' k8 r1 G; P! }0 Q( G; H& z
-- 将作业与调度关联起来
  m  z  v1 ^4 S9 vEXEC sp_attach_schedule
6 s& y/ K: q( I: p/ i" m+ a! Y    @job_name = N'IncreaseUserCashJob',              -- 作业名称; {- g" Y% Z' ~; F' a. i
    @schedule_name = N'MinuteSchedule';             -- 调度名称9 ^. u7 S" }' d$ N" X8 ]7 [4 O& w
GO. H8 p/ c) g- P: k" E

, C6 c) N2 \% E# I-- 提交作业创建到SQL Server Agent, p( d8 E7 P- S) K
EXEC sp_add_jobserver * B! F4 B9 S" F" x
    @job_name = N'IncreaseUserCashJob',              -- 作业名称' |$ F2 J. N1 \: Z
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
2 R" i" `0 d* AGO: y/ O0 y4 o1 N& n9 b1 b+ `

! V; v* ]) S9 e9 f0 l' ~# H+ k0 A* H* @+ @2 E4 ~1 g

' K$ [+ h3 l9 P( n
/ l6 `& y* j) g7 h) {$ w. _6 x2 j! K+ S; a. {8 f+ q+ q+ {9 ~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2025-10-3 11:22 , Processed in 0.047619 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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