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

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

[复制链接]

2

主题

75

回帖

891

积分

高级会员

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

2

主题

75

回帖

891

积分

高级会员

积分
891
金钱
742
贡献
72
注册时间
2024-9-13
发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
6 l$ ~6 J, \3 O( ]+ t) VUSE msdb;
+ E1 {* Y8 i5 S  Q: \GO
' ~4 C  O  i0 _6 M! _
) D$ l/ z6 v: e1 {0 l! [-- 如果作业已存在,则先删除它/ i3 q" N! o+ S1 ^
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')  U, I7 i2 O3 y9 y7 R
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
7 J6 C1 V2 t: y" A3 }, o$ jGO
& Q$ b1 {: r3 _' Z) Y: i! F# Z* R) v: k* y' k$ v- F1 `
-- 创建新的作业
* |9 n$ T! h* y) h$ I( zEXEC sp_add_job - X# f  T# j6 S! ]0 L
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
* h, e' P5 A7 z    @enabled = 1,                                    -- 启用作业
; B% m+ c, n3 g- n! ?4 z5 z    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改, Z( r5 [* @* X* _: Y- h) q4 Y
    @notify_level_email = 0,                         -- 不发送电子邮件通知
8 k! W  A9 |7 e3 h    @notify_level_netsend = 0,                       -- 不发送网络消息通知
3 l+ }( Q7 V/ D* s- a3 F. P    @notify_level_page = 0,                          -- 不发送寻呼通知* `6 G, K+ q/ n, c! `! Y' ^7 F
    @delete_level = 0,                               -- 不自动删除作业( l1 h) X, R; M! {' ^3 {& b
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
$ X$ h% l& e0 H& b' A5 d9 ^9 _    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
9 e: A$ t+ W% f: ?- w; E    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
2 I, x+ k- t* w' r7 Z    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员1 |9 |2 ]* N/ |" \0 q
GO6 ~. }7 U% F# f% d# u3 l
7 i" ^9 O- H1 A4 U! f3 H
-- 为作业添加一个步骤
7 u/ ^& w7 a/ xEXEC sp_add_jobstep
; @2 U  e  Q8 H7 {! _; w% H    @job_name = N'IncreaseUserCashJob',              -- 作业名称
. I9 U/ i& R" m  U) w2 Y    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称& t& i+ S" C! Z' F. M& l1 Y' C* ?# X( A
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)) }+ m1 a/ K+ U; u8 x
    @database_name = N'account',                     -- 指定数据库名称
7 x; \- V5 L; U- D# O5 `. ^9 ~' S    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
; X. N+ l& S1 `9 C0 b: L7 X' K    @retry_attempts = 5,                             -- 重试次数
" S7 `8 Y- S+ B2 G1 V    @retry_interval = 5;                             -- 重试间隔(分钟)0 ~# ]8 L5 f+ W- w8 S3 f5 T1 c
GO
; u! M% x3 l% k) r( w& e6 J
- e4 u  _: R$ [-- 为作业添加一个每分钟执行一次的调度
9 u0 D# ^2 S' x4 ZEXEC sp_add_schedule
$ A. m, j1 U: i  {; j* u/ H$ C( H5 \    @schedule_name = N'MinuteSchedule',             -- 调度名称
6 P8 T% ^4 _+ y; ~7 r! X9 J    @freq_type = 4,                                  -- 频率类型(4表示每日)
: \  Z& |. L* \/ z$ M$ j; B! ~7 e    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
- a  Y/ U. r0 z2 V8 W    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
( p& n; K3 S6 S4 d" v7 b7 V    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
+ D0 f: W$ T' _1 v* U8 @. i    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)! N9 `7 ?& N/ f
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
! w- L# R/ y6 q- Y/ a    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)5 {7 N( ?  @4 h$ U0 X. e
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
5 L* I! _6 Q3 v# M* I, t/ z6 JGO
7 l7 }7 {" \. X4 j: K; b
& j- H) K7 m% H& E8 [- w* f-- 将作业与调度关联起来
5 B, J; C2 E/ y  Q1 x5 D; fEXEC sp_attach_schedule
# [: i% z4 z$ x    @job_name = N'IncreaseUserCashJob',              -- 作业名称0 ]* ]! B1 O) x5 \
    @schedule_name = N'MinuteSchedule';             -- 调度名称: E9 O' t5 ]% ?4 }
GO
  y! }- \! T2 x; Y! n) O& x
7 J7 I7 F. i; N( r7 J7 q( P  Z3 i-- 提交作业创建到SQL Server Agent4 q) ^. ]7 C5 F! _
EXEC sp_add_jobserver
8 p7 `8 |, }5 C; I& l    @job_name = N'IncreaseUserCashJob',              -- 作业名称
5 C: @" J9 e/ H/ U2 T0 I2 d    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
2 [6 e# x; U0 Z, J; g$ P$ MGO
$ F$ }3 O. x8 ~; B& H' g9 ~) a' j8 E, f9 t  @" x

1 H) F3 @& s+ O. k0 y$ J; V! Q& E3 P/ u
$ L+ |0 @. ^$ i, h

; A. B# _6 {3 \+ C
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-10-8 00:45 , Processed in 0.051014 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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