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

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

[复制链接]

2

主题

75

回帖

773

积分

高级会员

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

2

主题

75

回帖

773

积分

高级会员

积分
773
金钱
642
贡献
54
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
0 M" |9 \7 f+ m: S, V. E" [USE msdb;
- k( K8 h( s. Q( O! a6 JGO; j0 ]8 M* C) i* u5 G
  Z% ]6 J% |+ ?+ u6 W% \
-- 如果作业已存在,则先删除它3 W$ C: Z% M8 A- s, ?
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
8 D* Y( \: l# `1 q    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';2 Y- P7 y" _0 Z! O+ I
GO/ K1 J: I8 R: J

% ~- u/ R3 X1 r( u0 y-- 创建新的作业$ M6 G$ O! g6 r( a3 }) W3 V' p1 E# a
EXEC sp_add_job
; M: W1 g; H. I  S5 N' Q    @job_name = N'IncreaseUserCashJob',               -- 作业名称
- _6 ]+ N  D8 `3 O# Y6 |0 A2 b    @enabled = 1,                                    -- 启用作业
, t3 [. u7 g2 Y) f    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
; Y4 H; O5 ]7 c    @notify_level_email = 0,                         -- 不发送电子邮件通知
1 W$ S4 G1 b; @' C: ^! k    @notify_level_netsend = 0,                       -- 不发送网络消息通知
! e3 t. D6 E& b6 I! N    @notify_level_page = 0,                          -- 不发送寻呼通知
- Z8 x" D8 b1 Z2 f! E2 o" n1 H    @delete_level = 0,                               -- 不自动删除作业* a' y# Y  e6 G  s7 s. b
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
6 G: g# i( ~: C    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
$ f# y% q: l+ z$ r    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)+ Z0 I9 k% \+ b( Y
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员5 L& J" B! B1 [, I9 X3 S
GO9 s; y2 I! o/ y* Q* U. I/ W  x2 G+ v

* n3 G  V( x0 C( g6 ?0 }1 m( H, [-- 为作业添加一个步骤
/ h  l  a1 z! E/ rEXEC sp_add_jobstep : O' k/ B" E: H! [! A
    @job_name = N'IncreaseUserCashJob',              -- 作业名称1 D, y$ L6 x2 b5 _& d) l' v" F
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称6 x% ?2 l: e1 a0 u  O& U
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL); x& b3 X6 O" k) K
    @database_name = N'account',                     -- 指定数据库名称% m+ D. {& v; Q! n/ S$ {
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)( R: b0 y/ N3 |1 G2 R
    @retry_attempts = 5,                             -- 重试次数
$ R; ?( K5 G) E9 @    @retry_interval = 5;                             -- 重试间隔(分钟)( X7 j( X- p2 {/ K0 R
GO
3 ?9 d* M3 r) m3 _6 z- g7 g
; V& G0 o5 Z* V+ _5 o6 [) w-- 为作业添加一个每分钟执行一次的调度
- w2 d2 [7 v! X. ]2 b2 V4 qEXEC sp_add_schedule
, ]8 l/ ~5 w8 ^* k. H: [    @schedule_name = N'MinuteSchedule',             -- 调度名称( p: d$ K/ c; M4 m
    @freq_type = 4,                                  -- 频率类型(4表示每日)
3 P) Z" a. L" H. `4 ^$ }0 g. w3 K    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行& }7 \+ B( A1 t. G
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)4 ]+ G8 Z) |# n7 J1 Z0 z/ H
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)4 r) H9 n9 o/ s6 C, b  u% O
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)* D  @3 I. o; I! L6 g! v& E" a
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
( K! h8 q, I/ l* @9 O! [5 B* x    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)! f6 y* z* @# l: f
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
' w3 O& K% b5 w( [" c5 \( ?GO5 l: r3 I7 q6 s( G7 t

0 N' ~3 R3 M/ {2 [-- 将作业与调度关联起来9 ^9 W- {5 T- E4 P6 E) ^! N* V
EXEC sp_attach_schedule
: z" T% ^! P5 U1 D. [    @job_name = N'IncreaseUserCashJob',              -- 作业名称
! p: f5 b% ?5 y4 {    @schedule_name = N'MinuteSchedule';             -- 调度名称* m; S6 a' T6 f5 O! }) n* S* ~
GO; V8 Z7 e. k9 U4 Y4 d* {; ]+ _' b& k
* R& @- o. t( \6 W* ~+ V! F
-- 提交作业创建到SQL Server Agent
' L# m- S9 s6 h1 l$ m* F$ dEXEC sp_add_jobserver
& l. ?, l% N& j; j    @job_name = N'IncreaseUserCashJob',              -- 作业名称+ o1 M! c$ ?) Y* M& }  @( R
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')! z$ i8 k& S8 O/ B& J8 p. R) M
GO# Z  ^+ J& N: J/ Y  q9 T) S& C! o
& Y# F6 ^7 S8 l; L! L
7 Q* p- V. p- m) O# t9 n4 W( \, f
. e, S$ j+ F7 V5 W  m

3 ]2 ?' v5 p/ r5 G+ Y1 W
) K: L) d: @5 E
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2025-11-13 18:57 , Processed in 0.067414 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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