找回密码
 立即注册
查看: 3406|回复: 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作业计划每分钟运行一次-----------------------
1 q! g$ b1 a. ]" lUSE msdb;
+ i2 `  o* i5 f, l1 r. [GO
* H# W9 s/ q, G7 K( h$ _2 O! a  p8 M9 `
-- 如果作业已存在,则先删除它) h0 V+ x( J2 U+ P4 J
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
7 q- X  q7 X0 Q# K    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';) N5 Q; {5 p, E" |( n' U8 J9 |, r
GO! h/ |) \4 n0 @: M( Z
0 y: p' U0 Y- P
-- 创建新的作业& n, E, s4 n6 r/ ]0 m
EXEC sp_add_job
& U4 i* v! f) a7 s4 y: p    @job_name = N'IncreaseUserCashJob',               -- 作业名称& D; {$ O! ~( b, b7 F
    @enabled = 1,                                    -- 启用作业4 X! O3 A5 P7 F9 U
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
4 u% G- h" {! ?9 x. j  [    @notify_level_email = 0,                         -- 不发送电子邮件通知* P! J4 B2 x8 i. d1 b6 @* s
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
3 }3 k8 O: J9 p! P    @notify_level_page = 0,                          -- 不发送寻呼通知& s4 H  v* ]; Y- K  \' ~
    @delete_level = 0,                               -- 不自动删除作业
; J  o' _: `/ ]) I0 t8 r, I    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述' q; j  [  B5 d, v" H9 Q& m
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别1 g0 |/ m  d( _! L. p' s; V
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)' Z8 z9 I9 K2 T# _
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
0 K5 E5 \5 M9 i) D( N- d% wGO
" Z5 i4 M- V: L' O4 ]
( i2 S# L; K6 m$ d1 b$ ~# M-- 为作业添加一个步骤  z% @; Q. b* T' P7 N
EXEC sp_add_jobstep 5 ^! X% g8 `1 T+ P' ^, B
    @job_name = N'IncreaseUserCashJob',              -- 作业名称9 z' n# ], W7 l, w! J
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
/ z% r# i: o- C) u0 f! S: L* u# L    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)0 @% z! d) h. }* }* ]5 _
    @database_name = N'account',                     -- 指定数据库名称
, h' W* Y8 c: Y5 v, J/ H    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
1 R, v! R0 N( V0 }+ W7 s    @retry_attempts = 5,                             -- 重试次数, {0 t- O0 O6 s0 |" A5 `
    @retry_interval = 5;                             -- 重试间隔(分钟)6 n, u9 _4 E5 g5 g! g, B! G8 ^
GO& ]* M: H! t5 A* W; |2 P3 z) ]

1 u" ]" D2 b0 s& P0 v; s- x2 z4 ^-- 为作业添加一个每分钟执行一次的调度, _4 B  W) `9 g* f! N0 G- `
EXEC sp_add_schedule 3 {- h" C1 L( h
    @schedule_name = N'MinuteSchedule',             -- 调度名称
7 w9 c/ N1 V9 b' [$ A    @freq_type = 4,                                  -- 频率类型(4表示每日)  x7 v+ J6 A5 y4 L
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
7 F. B  [' D+ y! d    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)% `, Q/ \, R. t" e
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
: K' R, D; U3 j" @1 [! `: _0 @0 o    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
$ t: B3 B9 H8 h' y2 }    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)9 e' j  A8 Q4 T. d9 r5 i, c, U& Y
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
) w/ C" U- D' Y" q9 a$ k    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
$ [; s6 @* F0 qGO
! Q; R- L2 N7 P. u! r
" |# D! e, g9 @: C-- 将作业与调度关联起来
0 \, j: g6 l9 u" c: p. v  EEXEC sp_attach_schedule
' F& w7 l: z5 z    @job_name = N'IncreaseUserCashJob',              -- 作业名称7 _/ N% X3 ?) g8 n4 R/ l" Y
    @schedule_name = N'MinuteSchedule';             -- 调度名称! w: l, ]. i6 \6 n9 y/ P; y
GO
7 x+ r. f9 s# E3 q% {% L% n
% v3 C* k+ R$ u$ f7 m! i/ ^-- 提交作业创建到SQL Server Agent
1 K" _  M1 q6 j) CEXEC sp_add_jobserver   I. }0 c+ Y- u1 z) d% A
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
' c6 p7 q! E8 Y4 @    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')  |# v& \0 Y6 r; {: L8 j  r! a2 P) C8 ~
GO6 X6 I4 y6 I3 ?! [) i% o

1 C0 s' x* F( k3 ?
' b% k4 p' {2 v: M& @
% w5 o" w! g! M9 D; i4 t( T3 ?( \3 U3 P& C6 A$ g5 x
$ ^/ F0 Q, l4 _) b
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-10-3 11:58 , Processed in 0.046892 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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