找回密码
 立即注册
查看: 2622|回复: 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作业计划每分钟运行一次-----------------------
3 T9 q8 N% t9 a2 YUSE msdb;
$ Y* I# u# q2 _5 x1 bGO
, ?+ ?% N, B. a6 f; S3 j# Z
& @* p" C4 f% k/ W6 ~-- 如果作业已存在,则先删除它
& S  b4 x, U- y2 H# _IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')" D1 T" l) |2 _* `
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';4 _5 p9 N% Y. l/ t- p3 f
GO& U3 S: {' J* |% [( F" R8 ~
- w3 g% X4 \: d; p( q
-- 创建新的作业
! I: S2 u* R% ~4 {; F8 SEXEC sp_add_job ' n2 e. `$ m8 ]+ p/ ]  R
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
" V! ]: X. L$ j! l& |    @enabled = 1,                                    -- 启用作业
# w, ]0 G/ b: g' P! |1 |    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改2 a0 S; s) J) ?" P- f) @) P/ z$ G
    @notify_level_email = 0,                         -- 不发送电子邮件通知
/ L. C0 D7 a6 f8 a" ?9 y    @notify_level_netsend = 0,                       -- 不发送网络消息通知
' n! }/ h* s* W$ t* r4 F. N    @notify_level_page = 0,                          -- 不发送寻呼通知
* N: T4 H4 w% W6 q8 N* H    @delete_level = 0,                               -- 不自动删除作业
. n$ d/ Z; O" }+ ^) q    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
4 K9 O9 s; v5 R$ t1 t4 a5 d  A    @category_name = N'[Uncategorized (Local)]',     -- 作业类别: ~" z3 }1 K, i4 Z# P" o+ ]: }
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
. |/ s+ w/ E- W5 m    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员2 T+ D# E7 M! L; m  m. E0 m: d
GO0 Z' k2 i6 Q% ]# v( z- Y* D
- q  t, }7 J: d6 u/ x; |  p+ M$ Z
-- 为作业添加一个步骤
# l8 B1 h8 V2 r. [/ lEXEC sp_add_jobstep
2 n  K4 G9 x! J1 L; o5 N. d6 y( _. g    @job_name = N'IncreaseUserCashJob',              -- 作业名称, M0 b& p( p$ m
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称' V' Y7 u$ c4 b! y: Q% ~+ }
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
/ ^- L3 l0 J( G" g    @database_name = N'account',                     -- 指定数据库名称
3 S: I- X3 C* c& p    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)0 _/ c1 ~% I( [, t( r6 ?  p" i
    @retry_attempts = 5,                             -- 重试次数$ K  p; s* `, y4 O7 ~9 q2 I& \
    @retry_interval = 5;                             -- 重试间隔(分钟)
' x3 Y  ], l+ T. I2 E: dGO& _9 a0 B( m7 j/ W% A" r0 e

2 k, q/ k1 O; d( a) @  |" H" Y* U. Q-- 为作业添加一个每分钟执行一次的调度
' W: K/ J3 R" ?EXEC sp_add_schedule 0 A3 @1 [( L6 L
    @schedule_name = N'MinuteSchedule',             -- 调度名称  g6 t. C! p: j; E: ~" O
    @freq_type = 4,                                  -- 频率类型(4表示每日)9 H% i' a) w: G! i
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行0 E' ~' h' s  ?# U( J
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
0 d- U/ J7 t% T3 _    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
; M5 S/ t; E" [) h5 I    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)! f) Y2 s6 v* q( `4 _
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)! @3 K3 m+ _" T0 P
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
1 G! A# J' O( \' _6 C1 d    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)! x; M8 ]: {/ e% T2 g3 F! R
GO
& P) j* u4 J' c( G7 l, H  Z% m8 t1 ]) X3 X6 }; x! Q6 H
-- 将作业与调度关联起来8 S3 W( ~  g+ p! E; f5 {
EXEC sp_attach_schedule
8 L& }8 [2 }1 b: {  ]; _; U    @job_name = N'IncreaseUserCashJob',              -- 作业名称
- J, D7 ?" L! ^* |; j    @schedule_name = N'MinuteSchedule';             -- 调度名称
# |  i9 C$ O. ~# \* C! X% RGO
; J; A; h  z2 }  |. `  b( `, q; Y5 }
; @6 b3 w4 H( c7 X-- 提交作业创建到SQL Server Agent# M# z5 i- c  d% q7 i
EXEC sp_add_jobserver 1 Q; ]3 W2 s1 v9 l' C) _
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
# V! x  H" d9 f+ p6 @    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')* y8 c3 j7 E% s3 p/ f6 \0 k* W
GO
3 I% y7 H" F2 b* \! D
  {) ^1 r# d" d- m* |" H, P5 `: ?4 l; o. l0 k5 C9 r

8 N- y: V- J4 q& |  d
, c- [) e/ V0 f/ k% H) x5 r7 y! K0 r% c  D% d" D% R
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-5-18 02:45 , Processed in 0.036410 second(s), 31 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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