找回密码
 立即注册
查看: 3625|回复: 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 U, L- F5 @' ]* q3 w
USE msdb;) A+ ~% g* {9 C5 C4 J& x
GO9 j2 v. G+ U* T( c0 F; c

/ e# F/ d" y& \-- 如果作业已存在,则先删除它
+ G  v! y9 {& w9 dIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
8 H  f  W" j+ k  l" ]! R( H    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';$ _0 j$ q( U4 t  z4 }% [" a. J
GO, u: P% x6 Y# ?+ Q$ r- m/ ^
" j( i2 ]# P) y# d7 G% P
-- 创建新的作业
) L! \1 ?, G% ^. c- YEXEC sp_add_job ) I/ k( B! V* q1 s  z5 d8 `
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
5 E  K1 t0 |8 i3 q    @enabled = 1,                                    -- 启用作业
8 B2 z) ?- u1 R! f, u+ ]    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
& L" }, a* u+ g$ \- M    @notify_level_email = 0,                         -- 不发送电子邮件通知4 q6 j: M$ E; a+ u* e- k7 L
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
9 ^9 h! |5 E- S0 U    @notify_level_page = 0,                          -- 不发送寻呼通知) W5 Z) u' v2 D" I3 R4 u, I
    @delete_level = 0,                               -- 不自动删除作业" M! Z1 f) s. x$ {2 c2 }4 O
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
7 \: _9 F: G4 G3 C    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
+ T8 c1 U0 v+ @    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名). k. q" ?. z, O
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
$ {" B8 h7 `" ^: Q3 \GO8 b: N, P2 |4 A* Y: k7 U9 B' Y
' X8 t1 P* S4 E8 X$ K1 ]
-- 为作业添加一个步骤, f6 d" U, W6 Q/ L) Q$ J# D
EXEC sp_add_jobstep
) ?/ m- I! k$ r9 b* P% T    @job_name = N'IncreaseUserCashJob',              -- 作业名称
& Y8 x4 \7 E- j  N1 z    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
- |/ ^1 r  g7 s9 Y" a" z    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)/ P1 k3 [' o2 b6 Y0 N; o
    @database_name = N'account',                     -- 指定数据库名称
! A* V/ N6 Q2 E2 @. D$ O    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)% y; g9 i# S1 Y  d' G' U
    @retry_attempts = 5,                             -- 重试次数6 Z) x( M. O7 J4 \* ^6 H
    @retry_interval = 5;                             -- 重试间隔(分钟)
+ J1 Q; }& }" H) O* b4 eGO
) w% E! v7 d7 I( a6 b( G9 m  {2 b& C& I" l4 P
-- 为作业添加一个每分钟执行一次的调度; O* s, D/ K* ~( u
EXEC sp_add_schedule
& I+ o. \' X3 a7 d3 \, k" G3 x    @schedule_name = N'MinuteSchedule',             -- 调度名称# h1 h& G% U; X
    @freq_type = 4,                                  -- 频率类型(4表示每日)% ~  y7 K2 O8 W- {, `4 b
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
/ G; t& j3 R5 K    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)2 E% o" r/ P( I
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
% H  e2 ]; ]( N. R+ m    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
" X# ]: g; U  W- }    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
7 E2 ~6 @1 L" n6 X    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)# w1 N2 i& a# k  [7 B# I
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)8 h# Q) D' z' a: t5 ]
GO
+ g1 `8 a3 O$ }. o! r; j
* X/ J  A$ T& Y- P; A, a6 z0 o-- 将作业与调度关联起来; b  z3 g* \% V
EXEC sp_attach_schedule 6 F# A$ S, K. \
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
: X- g; L. S& B6 X1 C- O    @schedule_name = N'MinuteSchedule';             -- 调度名称
# R$ J/ Q  J  K  J; R+ y: ~8 }GO
" T3 F! A- _3 ?
) p+ T+ [8 }$ P* ?2 ~7 n: I-- 提交作业创建到SQL Server Agent
% T- v. \% A0 G# j- gEXEC sp_add_jobserver - @* j+ `& C4 M& Y( A- Y
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
) U* ?4 H  l+ ^( l7 a0 O    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')4 P4 D! @0 F8 B
GO
1 a$ j2 N. ~& r) B3 i! }) {  p! v3 k, C( ]) C0 }' s% f+ ~( z! k
+ H- i/ K" T8 `* [9 D# [7 z* e+ v

- |/ r7 N5 E# E+ b2 t. j/ w% G) v% m" C6 g7 s7 e: E

- q/ b. W7 \5 m
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-11-13 09:00 , Processed in 0.056244 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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