找回密码
 立即注册
查看: 2899|回复: 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作业计划每分钟运行一次-----------------------4 o1 @7 }# R, C
USE msdb;
3 T9 g9 }! E5 v1 m! h+ S4 }GO. y8 q! f# H- B

: w8 ~8 x5 o) C, t) d2 [" b+ A1 i-- 如果作业已存在,则先删除它
% y) j  m& s8 tIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')) D0 E7 Z2 o6 v3 x
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';- C; G2 ~, Y. n1 k/ w' ]+ h
GO2 K; f/ g1 F, c) m( }6 q

' p! n  x1 T% h+ f7 `1 K2 {: Q-- 创建新的作业
, f$ ^. O4 c4 q4 A# HEXEC sp_add_job
4 j! J( a6 b2 [' g& l& _3 L& u2 P    @job_name = N'IncreaseUserCashJob',               -- 作业名称! u. i! _( F# i0 q3 u
    @enabled = 1,                                    -- 启用作业
. {  z$ C, d, T; {8 G" s; j    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改9 Y- o+ O. N" d
    @notify_level_email = 0,                         -- 不发送电子邮件通知0 X- B6 e% `% ~0 ?3 g& x8 o# d2 j
    @notify_level_netsend = 0,                       -- 不发送网络消息通知5 I- d7 \6 X5 a: ~+ e9 u
    @notify_level_page = 0,                          -- 不发送寻呼通知
6 p) @5 k: b6 h% N6 s, ?# G! {    @delete_level = 0,                               -- 不自动删除作业6 [& K: ]1 L( x( S+ G; h8 G
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
& f8 U7 l4 k3 y% l. ?& z! y  P    @category_name = N'[Uncategorized (Local)]',     -- 作业类别. R; X/ i1 x5 S& a5 A; F" ?9 ?
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
; I: Q2 @$ n; |4 M5 t; O    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员; U- l. K& q/ d9 k' X
GO
) i1 h$ L; |% Z) U$ g9 j5 s9 g# R$ y: j# A1 T$ t$ Q" C) h4 q
-- 为作业添加一个步骤1 E5 |0 y7 g# p: G4 \
EXEC sp_add_jobstep 4 X4 P: s4 [8 x, l8 X
    @job_name = N'IncreaseUserCashJob',              -- 作业名称  k4 O& e+ c/ h9 K
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
  @$ X( t( ?9 ~1 z* u3 G    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
" D' d# E# e5 c4 y& \0 l/ U3 e7 j% \    @database_name = N'account',                     -- 指定数据库名称
" O! W- S7 m6 F( x. Z3 Z    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
, ]4 }# p2 m( x    @retry_attempts = 5,                             -- 重试次数5 w4 @: K5 ?/ B, j9 @- @& y
    @retry_interval = 5;                             -- 重试间隔(分钟)
6 v* F. L8 d. v! O1 tGO" g# J6 ]8 E3 U/ u$ @% ~0 m; O9 h
, c+ W1 l  J1 o# m% Z
-- 为作业添加一个每分钟执行一次的调度( ?" t! a4 v" ?+ w  \* \& q! z
EXEC sp_add_schedule
$ h0 A  f9 b" f$ ]6 f1 \    @schedule_name = N'MinuteSchedule',             -- 调度名称
! {1 c9 F, N5 _, w! h7 \8 o% Y- `: y    @freq_type = 4,                                  -- 频率类型(4表示每日), l' `, _" M  B
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
  s$ |! x$ i0 a5 {, A    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
: r5 w8 t! W( {) @  f( @    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
6 ~( M& v  f0 G9 {, @    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
! e7 n0 \' s* Y6 h1 f    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜). n8 K0 M/ U+ |# X! J$ w
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
# Q: w$ D; l  q) |    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)5 m, E. b5 _' z( M5 H2 Y
GO
) \: v+ [+ d- A6 l
  r( p3 ]7 l* n0 H-- 将作业与调度关联起来( E$ P* ?, w3 n
EXEC sp_attach_schedule & D# d' A1 p# Q! w" j# f$ c' w* S
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
# k& H% G+ x$ z1 Y" h) K    @schedule_name = N'MinuteSchedule';             -- 调度名称( \5 d( o. o! t# e, G+ {
GO
. p( \* s' D( H9 i# R. e6 \4 V. Q% i3 W. m0 [% b& U/ S" S
-- 提交作业创建到SQL Server Agent
* L  w* ], @# @EXEC sp_add_jobserver ! i" f' R, v& ]/ D% Q
    @job_name = N'IncreaseUserCashJob',              -- 作业名称8 W5 Y& {, o0 x) M
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')7 v$ `" r  E, |4 w
GO6 R( }- T: {- n$ T" `3 m3 M
. p# s# R. m1 b. S' T9 ]6 t
2 u& F0 D8 f0 v0 U! c/ v6 Z4 N* o- s
: X' B0 @/ ^+ d+ [+ _9 P

8 D+ j; r( J' \/ X9 Q! J8 y+ ]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-7-3 07:45 , Processed in 0.050270 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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