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

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

[复制链接]

2

主题

75

回帖

870

积分

高级会员

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

2

主题

75

回帖

870

积分

高级会员

积分
870
金钱
730
贡献
63
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
) J* D! a) ^5 @4 UUSE msdb;; M9 \8 |$ J, V' |6 [
GO- m: ^+ |+ F) Y  \, k
  o* _+ L# `$ n, o/ v5 Z
-- 如果作业已存在,则先删除它  s! m) C( Y- p3 q
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
( v& _/ x* G" B, l2 u' Z    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';7 b5 `1 z1 b$ j" T* e/ v
GO
$ Y5 h+ }1 v$ C: M# ~- a+ `* r4 f* ?
-- 创建新的作业
& r0 S3 q3 ?! C7 z; y: t% TEXEC sp_add_job # g3 O3 r" s- b6 d
    @job_name = N'IncreaseUserCashJob',               -- 作业名称7 [: q" D6 y$ _
    @enabled = 1,                                    -- 启用作业( S. S3 w! W" c
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
" l! p% R: e0 ]/ G2 u& w    @notify_level_email = 0,                         -- 不发送电子邮件通知* v$ C# W5 m1 X1 |6 e
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
" \2 J4 \$ t: Y/ B& A+ Z6 Y/ s5 S    @notify_level_page = 0,                          -- 不发送寻呼通知" h9 F- Q& }3 h/ N( G6 n$ S' A" T; |
    @delete_level = 0,                               -- 不自动删除作业1 y' l7 {9 |* F5 \% d" H! Z$ x0 @1 {
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述, ^8 X1 g; u" N
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
2 m1 @. c0 u: t- O" e2 m    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
* x! n3 Q) u& x$ _. X2 t    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员6 `5 w8 S$ r* J* g- c7 F
GO* D9 e1 L" n" c2 b* R' Z& D# S

; ^1 I6 N  [, D0 S# M. q4 X-- 为作业添加一个步骤9 C; {- k2 M" |; W8 X% T
EXEC sp_add_jobstep 0 e! q0 E' r( P
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
, G- I' v9 S+ @& z7 F    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
) ?) g" S! }/ ^( x% J9 g    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)8 a; f& b2 n' Y; _
    @database_name = N'account',                     -- 指定数据库名称6 t& J' Q5 _+ R
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)6 }' G6 _/ C  N; ]0 \, {
    @retry_attempts = 5,                             -- 重试次数$ C$ n: K8 k& q
    @retry_interval = 5;                             -- 重试间隔(分钟)
& W( b9 b+ X8 t- O, B: nGO% [  L# _3 V2 T( s, o  J' Z

$ O1 T3 J$ Q& H2 j0 a8 u-- 为作业添加一个每分钟执行一次的调度# q$ w0 B" o$ u0 P2 \$ \5 A) z7 l( G
EXEC sp_add_schedule ) g! p7 e! J5 R( `
    @schedule_name = N'MinuteSchedule',             -- 调度名称$ N) [4 U8 ?' X' @6 z1 _
    @freq_type = 4,                                  -- 频率类型(4表示每日)
, x4 N# M" h: R& |0 N2 P    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行5 w. a0 r+ Y( u" [
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)" V- l8 z& x$ g
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
, |1 C8 e) x' {$ k    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
" b. l/ t: c- ]; S3 u8 r* Z8 Z* C( b    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
* y' c5 C* L3 z% N$ h    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
# M0 z+ D' T; `" S7 M/ e    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟): `) y3 A* M8 D. w
GO
- x/ @- b3 ~* P  ]
  \! R! @8 o- @% }5 m3 D. ]5 z7 w-- 将作业与调度关联起来
. y) j$ A! [' N- b/ H+ \# yEXEC sp_attach_schedule
* |3 K$ z; ~8 Q7 `    @job_name = N'IncreaseUserCashJob',              -- 作业名称
+ _1 p  Y' x0 K- R/ S1 j9 ~, ]    @schedule_name = N'MinuteSchedule';             -- 调度名称; ?7 d; z. @  s1 t( D
GO
( f; m, j& g! \/ `2 L  [% Z$ C5 z. E# `$ ]) {- V; [
-- 提交作业创建到SQL Server Agent
3 q& d, T$ i+ v4 OEXEC sp_add_jobserver
9 R# ]" d6 W9 G6 ~3 R    @job_name = N'IncreaseUserCashJob',              -- 作业名称
- d' L/ d% y+ R    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
3 O2 c4 k) k0 s5 EGO
2 J7 }8 y3 J$ q6 t. S8 c
* L. J" ~6 \+ u$ n- r; L6 ]4 o9 x- n) c# A% R  g( X: |

4 c$ E4 L$ [  J7 f( G/ M5 d9 Y2 f8 o/ F2 v

) j9 Y+ G$ T% Z& Z% V
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-4-30 03:40 , Processed in 0.035037 second(s), 30 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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