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

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

[复制链接]

2

主题

75

回帖

867

积分

高级会员

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

2

主题

75

回帖

867

积分

高级会员

积分
867
金钱
728
贡献
62
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
1 r5 ^! p, z, x( M2 g1 L- v5 |USE msdb;5 H5 \" B7 X* _) C+ @
GO
* n4 I0 E$ K( O) n
+ o' u- H2 h- V" R-- 如果作业已存在,则先删除它
. A/ X( h9 u' P: e4 nIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
! f1 K, G6 c/ `7 d5 q. e& w    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
9 {; o- C' N. ^2 wGO/ x5 A  M* X3 v) u
: V7 f' U7 e! w
-- 创建新的作业
( a  B) e0 {5 i! q/ _! REXEC sp_add_job
. ^5 r2 i9 ^% d- {% E7 y' T% m/ ?    @job_name = N'IncreaseUserCashJob',               -- 作业名称
( W3 a' [, P8 ?" H' O    @enabled = 1,                                    -- 启用作业% A8 V& H/ ~8 F3 Q
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改5 O; `7 B1 Y& E+ n& c9 R
    @notify_level_email = 0,                         -- 不发送电子邮件通知
2 K1 G, e& ]: ^5 ]& }    @notify_level_netsend = 0,                       -- 不发送网络消息通知
. O  f& g9 r8 b! m/ M    @notify_level_page = 0,                          -- 不发送寻呼通知
7 l/ [+ J& ~7 v" m% Y    @delete_level = 0,                               -- 不自动删除作业
8 U& b: x5 F' w) e9 M    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述0 g" [+ T& O% v5 B' A0 N9 I! R" I8 F
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别; z' B7 D# x& g' B1 u0 Z+ D
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
7 B# _# T, R3 ~1 W0 t, i    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
- K; b+ V+ n1 ^9 sGO" A/ O8 n! O+ {/ j

9 X  C* o. p/ X# d( w5 u! r-- 为作业添加一个步骤
5 y" ], |3 f) m7 k+ A; P: VEXEC sp_add_jobstep
% A* B% l5 M* W8 f    @job_name = N'IncreaseUserCashJob',              -- 作业名称7 c( n2 W% s" ]+ g1 b
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
% t' O1 V3 {- d3 X' v; E/ h    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
% H; V% w9 {; ?4 _  q5 y# N    @database_name = N'account',                     -- 指定数据库名称9 d* i( d  |) W8 ^: l( Q
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
7 \6 F! f$ @. d, e2 ]: x    @retry_attempts = 5,                             -- 重试次数
6 ?0 W9 W" G5 U) G. _) Y    @retry_interval = 5;                             -- 重试间隔(分钟)+ Q& P  X; K" C- V. w( i
GO5 _  [+ Q4 n+ E1 @( C( ^* w

7 j9 a% l% p3 V" R0 n0 F-- 为作业添加一个每分钟执行一次的调度
5 p2 Z8 ^8 t5 J; z; r, \EXEC sp_add_schedule
( p$ ^& V# m* G- N" V* g5 z    @schedule_name = N'MinuteSchedule',             -- 调度名称
1 F+ ^; I& @: s" o    @freq_type = 4,                                  -- 频率类型(4表示每日)" A9 T% [2 I, T8 R  C
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行  E, H! l7 r- @( J3 Z) V0 W1 D- Y& H
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)/ v. B, |" o' t" S, |& n8 d
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)# j9 }! R; H# P) J  s9 d3 z1 b
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
! ~% t7 F* l, W9 w$ k; l' @8 Z    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)! j7 `9 g. P" x8 @4 \" t
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)4 f3 o' v6 q& x
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)- n3 s4 _; B5 c0 J, M5 i
GO
2 z" c/ j1 W# M1 E  y9 j2 V. \' i9 h8 q# p/ A1 e$ o
-- 将作业与调度关联起来; G; E* i* q/ j( P2 x  v7 P6 D
EXEC sp_attach_schedule
4 G4 U* d1 P) J* Y: \    @job_name = N'IncreaseUserCashJob',              -- 作业名称
& K2 X( f3 n- p7 u2 ~    @schedule_name = N'MinuteSchedule';             -- 调度名称
6 S3 o( |4 x0 p6 n) r" X8 B' l1 _GO
+ I$ S1 r4 p1 g% I
; i7 `8 g2 l3 p$ x-- 提交作业创建到SQL Server Agent
) I$ D, c- A: ?: b' K  P5 n1 c2 Y4 ]EXEC sp_add_jobserver
, {; x0 Q8 K1 Y, h    @job_name = N'IncreaseUserCashJob',              -- 作业名称) j" ]" t% Q1 G# `
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
( p& d4 r$ u6 {3 }7 RGO' }2 i+ m5 n( B1 \5 I

9 t6 m8 m1 z" q" P, q1 ]6 W6 H. P; X/ S, U  }9 Y! j
) X7 i0 t1 W4 Q$ D6 [5 ]
( q% N. L4 a! x$ c

" a( G6 v; Q1 Z; x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-2-21 18:23 , Processed in 0.059099 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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