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

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

[复制链接]

2

主题

75

回帖

838

积分

高级会员

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

2

主题

75

回帖

838

积分

高级会员

积分
838
金钱
702
贡献
59
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
, ~2 g( Q% Z6 ^  W! v, A- i; N+ VUSE msdb;2 w: r' I1 w5 n/ n
GO
; e8 O( W5 L+ ?5 D6 q
# i' X7 f; L6 \$ N! ~1 G7 T/ O-- 如果作业已存在,则先删除它
4 I/ f+ U4 z  f# U0 ]IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')/ p% d: G" N8 G( X: X6 h5 w
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
/ A8 Q- o" b) f: a3 u# ^% T' cGO, e. g4 ~  v$ c4 f  |

( C: l- R2 x# @+ S. K0 j4 N-- 创建新的作业0 F/ I. G8 ^4 f' Y& R
EXEC sp_add_job - S# T8 d: |* `: D7 b
    @job_name = N'IncreaseUserCashJob',               -- 作业名称, @8 I) V$ j2 B
    @enabled = 1,                                    -- 启用作业$ T3 ^0 z1 Q1 o/ D
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
' ?; w& ]2 @) I( e! n    @notify_level_email = 0,                         -- 不发送电子邮件通知- b! z' B9 @% R
    @notify_level_netsend = 0,                       -- 不发送网络消息通知& P. {( K4 t. C
    @notify_level_page = 0,                          -- 不发送寻呼通知& Q: m4 h. d2 c$ v$ a9 m
    @delete_level = 0,                               -- 不自动删除作业
5 X' d0 n/ D% k7 a    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
. H& y' _. M0 L    @category_name = N'[Uncategorized (Local)]',     -- 作业类别9 m" E& \2 ]: j
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名). W! s# s/ ?9 o7 F3 q
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
7 f* n" A( Q* S8 a( S% `GO
- Z, H" z4 B& u: }2 X0 H1 X: t" m0 \
2 z$ j% S: a8 \-- 为作业添加一个步骤1 A- s2 z* z. z: u  ~
EXEC sp_add_jobstep 4 m# {: X0 t1 e2 w% h& U4 Y
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
9 [7 e2 J- V. ^% V1 y0 H- f3 Q9 h" h    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称& H* c- G6 S; W9 k
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
* ~2 H: m$ T/ p- X, ?6 t    @database_name = N'account',                     -- 指定数据库名称
) A- p( |; c9 y" |    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)& n/ ^" ~" S" D! N3 J/ N. h
    @retry_attempts = 5,                             -- 重试次数9 m, x3 V- D3 g3 j* f) N) h/ a
    @retry_interval = 5;                             -- 重试间隔(分钟)
1 j, N$ e) e3 v7 N3 nGO
% ?, m, ^; I4 G5 t4 F
' @5 r2 [  }) E/ x% Z( u-- 为作业添加一个每分钟执行一次的调度
0 t, v# k' |; Z# BEXEC sp_add_schedule
7 c/ K, f* O- d+ i1 Y    @schedule_name = N'MinuteSchedule',             -- 调度名称
" I, E7 X% t3 \  ]/ m* y    @freq_type = 4,                                  -- 频率类型(4表示每日)
5 k7 W- V2 y5 {& J0 a3 r* e# I; n    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行" H1 _) B+ t$ w+ g+ s
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
4 I+ ^+ t4 p+ C    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)$ k+ Q1 b0 X5 p* u3 _/ g
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
" t2 p4 E" n; Q    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
2 U, ?9 \6 M3 }" q  @    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
0 ]* S( S+ w& `: j% U' e' P    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟); _! I  I8 ?" h% o  Y% F* M
GO
8 u8 o. t7 d6 p- C* ]7 i4 A
6 a0 k- v: E4 F3 H-- 将作业与调度关联起来
4 ~, M7 h2 j; X, i+ {1 LEXEC sp_attach_schedule
& o# y  [/ I+ V' [5 F    @job_name = N'IncreaseUserCashJob',              -- 作业名称
" B% g( ~0 ?$ M, H  c    @schedule_name = N'MinuteSchedule';             -- 调度名称+ z7 E) r: B. H; L3 q8 o* `7 ]' H" l- K
GO
. d/ |3 v: \: d" O) `$ |1 I& H+ `, \8 R& J" D
-- 提交作业创建到SQL Server Agent
0 d7 j" F7 s5 ~EXEC sp_add_jobserver
6 Z9 M9 Q8 s0 [2 K/ \! N" i4 ~    @job_name = N'IncreaseUserCashJob',              -- 作业名称* G% |" u+ J* g( ?: y6 J7 Z8 m& M& [
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
' {& @, z1 \' s# C( J( P/ VGO2 H2 S- S$ k; N9 a7 Z- [- T5 `5 O

" k8 X- c8 f) A/ @" F. t
% h( Q0 l0 Y! O, y+ X
- s+ d& A1 u2 j! S' {' U- `) C

, D: h0 {) a3 z
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-1-8 01:31 , Processed in 0.074464 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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