找回密码
 立即注册
查看: 3266|回复: 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作业计划每分钟运行一次-----------------------+ H' l. o+ U: V/ K: \& H
USE msdb;
+ M  O- p% ?3 yGO- B$ P4 j& N6 b; ~1 a

- E- n  D' A2 }# I8 y+ C& C7 b( q5 S-- 如果作业已存在,则先删除它& d4 l, i* H3 ~' q3 o
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')$ D, ^, |$ z. j1 t: F
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';; k/ B* j/ T# i$ w/ m
GO  K3 L; U0 }. R; N& a! m5 n0 d

& a' e0 c. R4 ^-- 创建新的作业
6 `6 b& \5 W, _3 X1 H% n3 y5 nEXEC sp_add_job
  u4 I2 G, ]1 T) S# o    @job_name = N'IncreaseUserCashJob',               -- 作业名称$ v1 W1 |! q% g
    @enabled = 1,                                    -- 启用作业
. B4 l8 a4 P: E2 ?! W) S0 Q    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
/ l. K" K# d+ B9 E6 j    @notify_level_email = 0,                         -- 不发送电子邮件通知
+ Y4 ~# H! Y  Z8 p/ Z    @notify_level_netsend = 0,                       -- 不发送网络消息通知
0 M1 U' S) G8 O: w$ I. x# J    @notify_level_page = 0,                          -- 不发送寻呼通知
2 o, }8 \4 |; F7 x    @delete_level = 0,                               -- 不自动删除作业( h) ?1 c1 a0 t) _6 Z- V
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
- G% }7 B) B- F( ~. ?  e    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
+ G! k) y, B0 N- L: C. S    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
8 c9 l1 N/ _' J' O9 @4 T* x2 w+ u    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员5 ~+ B0 @& A: g
GO
0 ?, {) @, C% e$ d: i
/ N9 n, b: n- X8 N-- 为作业添加一个步骤" U$ F  X1 \( U; R
EXEC sp_add_jobstep . v$ v, }8 x! L
    @job_name = N'IncreaseUserCashJob',              -- 作业名称. F, t  j7 g3 z- }% D' W
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
) o* k' K, j9 E% h+ v2 e: L7 C- I% h! J) u    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)3 B  b, U. q( J+ N
    @database_name = N'account',                     -- 指定数据库名称; J& A: i5 W0 t% Y: |% T8 ]- x
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)# Q; c; Q3 G: X, \7 ]
    @retry_attempts = 5,                             -- 重试次数
7 l# m) I. N; S$ U; u    @retry_interval = 5;                             -- 重试间隔(分钟)
2 U! Q2 K8 K7 Z  G1 ^: nGO
, u/ A$ _* a5 \6 O$ C, n- h% n9 g$ h% Q# W
-- 为作业添加一个每分钟执行一次的调度
; ]9 r6 M+ J# W! Y5 T$ N9 z+ ^/ fEXEC sp_add_schedule
1 ]; w4 L) D- ?7 T% A    @schedule_name = N'MinuteSchedule',             -- 调度名称! b! _- X5 _, z& X
    @freq_type = 4,                                  -- 频率类型(4表示每日)
! }* W6 H7 e/ Y; _) N9 U: P    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行; |6 p% P( M0 ]* ?
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
; J& h, @$ j+ V2 i. @    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
9 A- ^: n4 u0 h; l0 h$ O    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
1 a3 B  Z( ^( K    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)7 F) U& w! w% p3 f% h1 J5 L
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
& ^9 J3 v) E$ X- }1 A7 e+ B- ~* ?" `    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
* O9 D3 D5 W/ y2 v: k- v0 qGO3 I" R3 G' w1 J

6 H& l! Z! b" N& \9 h0 P-- 将作业与调度关联起来/ z, h( q# K+ W! s- ], c
EXEC sp_attach_schedule
9 W; |# f1 u: S) e: @9 s    @job_name = N'IncreaseUserCashJob',              -- 作业名称
5 D7 X7 d9 m7 e( W: P$ H5 x    @schedule_name = N'MinuteSchedule';             -- 调度名称
, n4 s' V/ H! P0 ~GO
; l( j8 h6 W: [
( Q; K) i" d: d1 o5 W& d$ O2 {) ]-- 提交作业创建到SQL Server Agent8 U( e4 [) ]0 a
EXEC sp_add_jobserver * w8 F) S' w; \2 j- B  Z0 O
    @job_name = N'IncreaseUserCashJob',              -- 作业名称0 l- P$ |7 J% [* K( L
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')- D7 Z' P- o' [2 C0 ]. ~) J2 X
GO
" L9 l4 {! ?" B" p' m  w5 |
7 Z. L* Z' c4 F3 P; k
  B* M' d1 h* ]$ n. y: A
7 ]+ u; k9 M- Y# o4 h- V1 ?/ o8 b& z' q1 ?' h  N" x4 Q& n% W
( |0 x9 o, z, v
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-9-13 16:55 , Processed in 0.072472 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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