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

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

[复制链接]

2

主题

75

回帖

891

积分

高级会员

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

2

主题

75

回帖

891

积分

高级会员

积分
891
金钱
742
贡献
72
注册时间
2024-9-13
发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------& H: N: T  z) r: K
USE msdb;
6 e. m; b  _3 K' K: cGO
3 X6 v7 U& K1 f8 e4 d% P( g# v' \. {. n
-- 如果作业已存在,则先删除它- U, M9 ?) X& W0 P  L# Y/ N
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')1 Z3 U6 Y, s0 t+ z
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';+ ?3 V% e* h' Z/ ~9 o
GO" }" L" }/ j# w1 S  c! J# Y

# R: S5 V) H! D+ m" |-- 创建新的作业  h, o# i4 K% L: B$ `4 ^( J
EXEC sp_add_job % _5 B9 O. s' |9 L
    @job_name = N'IncreaseUserCashJob',               -- 作业名称
/ Z9 w8 M# |0 z4 E    @enabled = 1,                                    -- 启用作业7 D7 _% c2 x/ H% U$ F, Y
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
5 L( L4 C' k2 y6 \    @notify_level_email = 0,                         -- 不发送电子邮件通知
( u7 E$ t  q6 d& ^5 d/ V& l    @notify_level_netsend = 0,                       -- 不发送网络消息通知
9 |' E( y- Q6 v5 j    @notify_level_page = 0,                          -- 不发送寻呼通知
/ @' D$ n% }; a    @delete_level = 0,                               -- 不自动删除作业) I+ j( ?% F: u+ s9 c
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
9 i7 I/ X- h) `7 d( z& f" R; v; O    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
$ q% ?- c+ u4 Z( R- S3 `6 k' ^$ t/ H    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
' l% E3 ]# Y! t  r9 l    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员# ^7 P0 @- }' k; J
GO: L: Z; E( I1 D# h9 O" s
  z- _) S9 Y0 T6 O
-- 为作业添加一个步骤
, H/ @/ }6 j& x: mEXEC sp_add_jobstep % I! _* k/ s2 L
    @job_name = N'IncreaseUserCashJob',              -- 作业名称+ z! ]/ q7 u5 Q
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
8 y; {# n' W, u9 q    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
4 ?" V2 W6 J' ]! {: r  P7 [    @database_name = N'account',                     -- 指定数据库名称: \& n3 S8 g. C# c# p& u/ R
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
6 a! p6 J6 {4 t, F    @retry_attempts = 5,                             -- 重试次数9 |1 x& V1 ]; H" Q. w; M
    @retry_interval = 5;                             -- 重试间隔(分钟)
, T8 Z: Z  d: @1 _7 p* RGO
& \7 r4 {" `$ f  c8 N- i3 b/ g: X* z% T! @2 ^$ w. x0 A
-- 为作业添加一个每分钟执行一次的调度
5 }% Z! O* F+ B) fEXEC sp_add_schedule ( O! ^# h( `% N, ]0 L# O
    @schedule_name = N'MinuteSchedule',             -- 调度名称
( w7 g) ^7 p4 a* U9 g) c    @freq_type = 4,                                  -- 频率类型(4表示每日). p- u2 ?0 Q0 x% O+ S  Y
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
$ N6 }& V5 N# V1 C  N    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
4 v) w2 q9 F3 N3 P  W4 f" P9 s    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)) O- g" V7 |) C" O  C4 r
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
9 q6 L$ A& d6 t1 Z4 V0 h; ~    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
5 q5 G% D$ I- H! D8 M( R    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)$ \5 s9 X6 m8 O' `& g3 b7 {  @
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
) h* \, J. `5 |6 W3 ]6 }- O0 N9 UGO- G# G3 e' M% g( I* x* }0 I
1 C6 f, w* j3 t" z& `3 l( }
-- 将作业与调度关联起来) Z& D% B  {0 ^' @( k' t
EXEC sp_attach_schedule
7 l: a. W4 B: }* l2 @/ [# n" o& a    @job_name = N'IncreaseUserCashJob',              -- 作业名称
" s, M7 H2 E$ X0 R    @schedule_name = N'MinuteSchedule';             -- 调度名称
" J5 q) i1 D5 z0 |  wGO
  _7 H" |' z+ ^/ Y- J2 t
* {  G: g7 M# Q& |- T  V5 z-- 提交作业创建到SQL Server Agent
0 z9 i7 _5 _6 wEXEC sp_add_jobserver
; R. Q1 o$ a- D) N  N    @job_name = N'IncreaseUserCashJob',              -- 作业名称9 q4 O) i+ Z9 p4 V0 |' s# v: B% C
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')' |  O* r  ^* }0 x" s! ]% Y; {& W2 A( X
GO
5 J; t0 Z) Y3 [2 [
6 j. A6 {# U0 i6 H9 z( \1 i/ u+ J+ T1 x1 S% i6 {

" ?% X9 I  ]# U. N+ M; e. y9 e& j. I, X+ I
* ]: @4 F# a9 j% R+ I# O- J
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-11-3 22:41 , Processed in 0.411766 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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