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

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

[复制链接]

2

主题

73

回帖

726

积分

高级会员

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

2

主题

73

回帖

726

积分

高级会员

积分
726
金钱
598
贡献
53
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
1 _/ Z5 F/ b9 ^9 I5 S2 `USE msdb;" P9 l7 S& h" M& H
GO' }5 ]' m! d& C& [0 J  e

  c+ N4 c9 ]; a9 e& s" p* U9 b-- 如果作业已存在,则先删除它  L/ [* q0 u, ]" {+ {) K8 N
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')6 |$ l; Y/ W( j: D+ g% d: t- a
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';, ]0 N" U: h' X4 W3 j
GO4 L( P% o' W% q" `8 u" y
" C. r6 j6 L, n
-- 创建新的作业
; a2 X9 d& v  P4 |# zEXEC sp_add_job
, D: b* J2 k7 \! w- Z. i    @job_name = N'IncreaseUserCashJob',               -- 作业名称
# N; h0 [( W8 n7 e    @enabled = 1,                                    -- 启用作业
1 C2 O2 p1 M% s- B+ R7 H    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
8 B* X# _1 O! x3 c/ u    @notify_level_email = 0,                         -- 不发送电子邮件通知
* T- K. u: P4 a$ @. s0 b    @notify_level_netsend = 0,                       -- 不发送网络消息通知
2 |+ T8 v7 c9 ?0 ^    @notify_level_page = 0,                          -- 不发送寻呼通知
& N, h2 C+ ^& P6 l! E- ~; Z    @delete_level = 0,                               -- 不自动删除作业3 h3 `/ G8 ]7 R
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
2 J" p/ Q- q3 S! p% I    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
; d, I) y9 R4 z    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
% E% e5 u4 N& z$ V; n! l& u    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员1 f$ u" p: m/ X% a7 N6 ]6 U0 ?+ X
GO
$ G0 J5 A. |2 R) k
* t  I4 x& C! i' e$ {5 A  \2 e-- 为作业添加一个步骤
( O* o% T1 j6 H* o" E" k6 \EXEC sp_add_jobstep
, C$ p2 T5 E9 c: h/ C/ u2 Y0 M, F3 y- l    @job_name = N'IncreaseUserCashJob',              -- 作业名称
  K$ I; W1 y  b3 \$ d  x9 I: t    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称4 U, Z  A# v/ ^( @/ ?/ m
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)8 O. h9 M9 Q1 p% F( w# L1 Q3 c
    @database_name = N'account',                     -- 指定数据库名称
) c7 i3 \7 M7 d    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)+ z6 _) |( f+ W6 c. ~
    @retry_attempts = 5,                             -- 重试次数
' F9 k# f0 \* ~& |+ E! A; j    @retry_interval = 5;                             -- 重试间隔(分钟)* A8 \  w# C; S) K; `- ?
GO! N0 d) P9 c( v9 T6 u

6 m7 M; w1 Q1 [( u, M-- 为作业添加一个每分钟执行一次的调度4 ?( u2 C. A1 r1 M
EXEC sp_add_schedule
& C( M7 s" x) f& x% y2 A5 N    @schedule_name = N'MinuteSchedule',             -- 调度名称/ [% U& w9 Y7 X
    @freq_type = 4,                                  -- 频率类型(4表示每日)
. C! g/ Q0 W9 j. G) K6 l4 F    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
! g( S  }* r& |    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
* q% @5 g: a2 K8 v, i" \% C$ n7 @    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
) b! t$ w9 C3 ^9 K6 `    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)4 Y$ R- b; [& V/ v
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
' B3 d" z3 A8 p* z    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期), Z% E5 u1 ^- i* F+ X0 h
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)' B6 O! o  V; K5 i; E
GO" z! ]2 h0 K- c9 W7 u2 L+ |
! q  U3 J1 x. t8 D% Z/ V
-- 将作业与调度关联起来+ N! ~: C. r1 P# O
EXEC sp_attach_schedule ( C, w, r' r0 W5 [! E# e
    @job_name = N'IncreaseUserCashJob',              -- 作业名称0 E4 v: z! z( V2 l3 J
    @schedule_name = N'MinuteSchedule';             -- 调度名称$ b/ F0 K3 J: A# j0 M, o1 y1 M4 G
GO3 Z( n5 Q+ Q& ]0 K

$ }: m3 N/ k' j3 f& p2 E/ u4 M% p-- 提交作业创建到SQL Server Agent
+ ~6 N7 B$ K6 [EXEC sp_add_jobserver % {8 _  ^5 _! M% S  z; f
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
4 G0 w& j- o  f+ E7 y    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')# X; G& h5 R! E& [5 f4 Y) f
GO  }. P% z( g. }' b' a( b9 X

' o" {0 a7 d% W+ O' ]
  [6 M' |3 n8 ~& ?% D% q4 x/ p9 t2 }0 H- Q9 x9 V# t2 |+ g

) E9 \) I! u- J0 R! P- ^5 w4 G( R' N( r" P# Y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|手机版|小黑屋|EGameol

GMT+8, 2025-9-18 14:23 , Processed in 0.053515 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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