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

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

[复制链接]

2

主题

75

回帖

883

积分

高级会员

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

2

主题

75

回帖

883

积分

高级会员

积分
883
金钱
742
贡献
64
注册时间
2024-9-13
发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------( \/ K% Y' M$ J3 [: y# x' W
USE msdb;. i# i  p. O3 x
GO, ~: X% U( |  L% D
& Q; X( }1 L7 h6 Y( p
-- 如果作业已存在,则先删除它
1 w- o2 S! _3 I; h0 K0 pIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
# l; m) A1 Z2 M7 p% f! {- N+ m    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';' t3 U5 m' R8 i5 N! \
GO
* u) f( n8 d1 P5 w3 h$ n0 m" B* N* w$ r# @" p
-- 创建新的作业: H6 g1 m' }4 v
EXEC sp_add_job , ^% z6 O$ c8 N+ u( d$ y2 w" {7 _# i
    @job_name = N'IncreaseUserCashJob',               -- 作业名称1 ?1 t2 }% `% L, D
    @enabled = 1,                                    -- 启用作业! E) p, z& Y! q* j9 z% b8 `
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
% Y) j# d( E! p+ }- W    @notify_level_email = 0,                         -- 不发送电子邮件通知5 o& W7 F2 ]' }. H
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
9 l3 ]. q- W4 ?- t1 L4 F    @notify_level_page = 0,                          -- 不发送寻呼通知
( d; C: h4 d7 [: F# s8 \( p. w& g  Q    @delete_level = 0,                               -- 不自动删除作业
+ I, f- ~) U7 ~5 Q6 }+ D; b    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
" m+ N+ N. }! _$ k# T1 e    @category_name = N'[Uncategorized (Local)]',     -- 作业类别, \, A$ b0 J, C* [% A5 T* U
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)0 G: P2 k5 q! @" O% r0 f4 g
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员3 V8 s' V4 P7 J9 g0 Q6 _  n
GO
3 d" Y& m7 w* ]" _3 V0 P7 X0 G4 V# X8 P7 I$ }$ b) P
-- 为作业添加一个步骤
, u! S( ^9 W( x8 s& xEXEC sp_add_jobstep $ l# L9 K% C$ T
    @job_name = N'IncreaseUserCashJob',              -- 作业名称4 j9 A' v9 U  d; M8 V& {
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称7 ~+ D9 {+ n" g  c
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL): ~( D4 Q+ h( |
    @database_name = N'account',                     -- 指定数据库名称
6 K* J$ u' i, C- e    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程), G, l4 p) j& z( m# ^2 J
    @retry_attempts = 5,                             -- 重试次数
! B! ?0 S2 R) n9 r" o5 D1 _1 P    @retry_interval = 5;                             -- 重试间隔(分钟)
' v2 ^: U  F# D6 m0 A+ a+ JGO
" }1 W; t/ n2 Q) j/ S6 @7 D4 v( c- k* e% x- s6 @. G
-- 为作业添加一个每分钟执行一次的调度% `# x$ R6 E' m2 K9 V
EXEC sp_add_schedule ' C! A! F4 S, y- v3 u7 J4 d* s% N0 g$ B
    @schedule_name = N'MinuteSchedule',             -- 调度名称& V' f) S; g, y0 G; ?
    @freq_type = 4,                                  -- 频率类型(4表示每日)3 I8 S* V3 {! K7 F1 Y
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行( ?9 v6 f6 w3 L! n1 P7 Z+ ~7 V0 g
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
6 W9 r* ?8 D$ o0 l! E$ X    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
6 {3 g* e1 O2 @3 |$ |4 a. R    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
7 Q0 u2 i' ~; F: R5 A    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)0 J$ P; g9 o( K' d
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
3 d- y' H! z7 t$ u/ O$ X    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
6 B( U) t- r% n4 y0 \/ VGO
; A% p/ x) ?. [: o, A
: [9 p, `7 m3 B# K! w  j  }-- 将作业与调度关联起来% e: n' f0 O, _% Z
EXEC sp_attach_schedule 6 @: ~. m0 g; n3 {/ b( Q' Z' S
    @job_name = N'IncreaseUserCashJob',              -- 作业名称/ T: h! `, U8 v: E, P
    @schedule_name = N'MinuteSchedule';             -- 调度名称
* q% j& S$ V* x8 J0 cGO
; @9 X/ q: m( Q2 o
/ s1 A, h, u3 O5 v9 G2 Y-- 提交作业创建到SQL Server Agent6 e3 f& Y8 G0 U5 q! ~' ?
EXEC sp_add_jobserver
* l7 y7 g2 j9 H) s. |# x7 ^$ m    @job_name = N'IncreaseUserCashJob',              -- 作业名称
  g# I/ R- r  Q% A! F1 h, k8 b    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
+ K- W5 n- f1 P* f% B; lGO8 `5 m& U" {; T9 @" s

9 J# \5 U+ v% t/ J( K$ O0 P0 g" `4 I! o# _; X" a
  j+ U8 ?* c& q0 `* B

+ t7 |- I3 @# o9 k, E. ^0 l# C3 G! s0 U
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-10-1 13:36 , Processed in 0.063464 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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