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

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

[复制链接]

2

主题

75

回帖

786

积分

高级会员

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

2

主题

75

回帖

786

积分

高级会员

积分
786
金钱
654
贡献
55
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
' Q. ^  g1 X) q: j! K4 f6 |USE msdb;
) C! f3 W! Z4 e: iGO. f* [. f5 }% W4 e4 g' B/ Q' G

" \1 p5 Y$ l8 u+ ]0 M-- 如果作业已存在,则先删除它& Q" D  a- e. O* i
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
' k, u; K" H( J9 a( K    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
: j. E( a$ ^# V0 h7 F) K' o$ P# YGO
5 F! a0 R8 B3 a7 D8 E* F9 F
! K3 w& J% z$ Y: W# P-- 创建新的作业. O! H0 a3 {7 H% O
EXEC sp_add_job
' S, n3 {& V+ t7 o+ b    @job_name = N'IncreaseUserCashJob',               -- 作业名称2 \0 ^( \' t9 ^0 I
    @enabled = 1,                                    -- 启用作业) V& T" d- [5 f& h
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
3 p. c1 \) F, F# T    @notify_level_email = 0,                         -- 不发送电子邮件通知6 |8 Y2 ^5 p8 V) M+ y6 ^8 E
    @notify_level_netsend = 0,                       -- 不发送网络消息通知
5 g+ `' m% D7 ]5 Z- V2 W, x6 Z    @notify_level_page = 0,                          -- 不发送寻呼通知: _0 L8 n' N( `4 i. I9 R
    @delete_level = 0,                               -- 不自动删除作业% v$ ]# N4 k4 s
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述  e1 J& R% S7 R5 Z- f
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别# Y: F2 [7 [# \* a2 k, F
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)- \" [) I5 T' F* o2 q  Z# o; q
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员) t+ }! A- g" ~3 J  ?$ I# b2 g4 e
GO
8 X+ l  z: S! m; S6 k; @( ?8 c9 W. d0 C! B. [
-- 为作业添加一个步骤
/ I- G" @& ^+ e- I* C( X1 G  JEXEC sp_add_jobstep
6 v$ ^0 g0 H# ~$ h  |    @job_name = N'IncreaseUserCashJob',              -- 作业名称
  M& O) A; Z. H    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
" f$ M2 b3 a& P. x4 V    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)5 a4 f% Z  W" R0 g9 M; r+ I* m2 `
    @database_name = N'account',                     -- 指定数据库名称
0 ^! U3 Y. U# c9 E# l% n5 P' g    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)- l8 R/ a  [0 E" j  k* h- v2 b8 k0 D
    @retry_attempts = 5,                             -- 重试次数
& n  H7 h' O0 W6 I* z0 y    @retry_interval = 5;                             -- 重试间隔(分钟)* p0 e; T+ U* e
GO
5 k" M$ p% ]+ {4 h) r$ c( C
7 }, e# K: Y' t8 R" S. @6 @+ w-- 为作业添加一个每分钟执行一次的调度* E. ?  N) V8 V% i  x3 F( [% T! d+ J
EXEC sp_add_schedule
) Z0 U7 v! G' [. {: W! |, T    @schedule_name = N'MinuteSchedule',             -- 调度名称0 W9 o7 W, G+ y0 {6 @+ u
    @freq_type = 4,                                  -- 频率类型(4表示每日): L0 z0 ~2 u3 n+ N1 T, e+ U
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行6 r5 b2 F' i, b% b" m
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
: A( N/ g% h: Y% O: v% n/ _    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)% Z- v0 C/ ^0 b( |) s1 w4 g' V! p
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
6 |0 X) {1 m3 J+ A    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)1 Y+ ^3 Q. S4 t: }) C
    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
( q/ C- R8 f. ?: z2 R5 O    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
/ r7 P9 z6 Y6 ^+ b$ v! Q. tGO
0 W7 x8 `) G0 F
! R, G# Y* k8 `4 r-- 将作业与调度关联起来
- Q4 I9 p* [/ x3 F/ J0 kEXEC sp_attach_schedule
( M- r- T8 U- f) O7 x; P+ I    @job_name = N'IncreaseUserCashJob',              -- 作业名称4 T; I7 p& \. _2 L
    @schedule_name = N'MinuteSchedule';             -- 调度名称
8 X5 C" P9 e: y' ^, j5 L" BGO! {# z7 Y$ q! o
; g) J, F$ t4 A6 Z3 }+ `) R
-- 提交作业创建到SQL Server Agent
4 s  Z* M9 P' Q% ?EXEC sp_add_jobserver 6 P' ?/ Y" S# Z; k
    @job_name = N'IncreaseUserCashJob',              -- 作业名称+ @7 y7 p" b+ h7 Q3 ]1 P7 ~' R. W" J
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
3 U" X  E4 _7 l% o! e. Z- x( YGO9 I6 z/ d4 X: P) @
# [8 \1 N' i# ?& y6 R; W+ B  n: U: X

8 s: Y" b5 [) |4 y& R' X  n% F) D* d, `0 {) @0 j% n. ^3 M
  G; w2 S: w- ~7 a! w" h; L4 Q

1 e6 a4 n5 p3 o5 K0 u$ n
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2025-11-17 16:34 , Processed in 0.060221 second(s), 27 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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