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

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

[复制链接]

2

主题

75

回帖

854

积分

高级会员

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

2

主题

75

回帖

854

积分

高级会员

积分
854
金钱
716
贡献
61
注册时间
2024-9-13
 楼主| 发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------: y& {2 B/ S5 t7 j, P9 U) {- e6 b. ~$ y
USE msdb;- D4 e2 P# G6 a- m: y" \. L
GO
, r6 n8 ]+ x; ?! ~0 `
5 p3 F0 }( I# O! F& H+ n' t-- 如果作业已存在,则先删除它6 {" |! s1 X$ n$ w
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
! Y  J* r) \9 v; i9 o; w    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
( x9 j% r" V7 C4 p- DGO
# p+ D1 }3 r$ X/ A' a+ c. b8 p1 P, \/ M7 |) n! |
-- 创建新的作业5 i# H& P' i/ z1 @) x' ~
EXEC sp_add_job % s+ P7 h  ]( E: G& r4 B. r% F
    @job_name = N'IncreaseUserCashJob',               -- 作业名称" A5 Z5 w& D: R! F% _& Y" E) R
    @enabled = 1,                                    -- 启用作业
0 k, [! F. x3 l0 K: p    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
2 v6 e% q* r) F& I    @notify_level_email = 0,                         -- 不发送电子邮件通知% s& Z0 V# U: C5 ]8 E
    @notify_level_netsend = 0,                       -- 不发送网络消息通知" K" Q1 V4 {( ^/ a) {4 {
    @notify_level_page = 0,                          -- 不发送寻呼通知
- b5 b8 _% u$ Y' D; Q2 V    @delete_level = 0,                               -- 不自动删除作业# x7 L' i& F' @% P9 v2 e/ S
    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述
! V! a- o. I) L    @category_name = N'[Uncategorized (Local)]',     -- 作业类别+ p9 R" ?2 k1 b0 M
    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)+ s% X4 l6 A  i
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
9 R- W; F6 O& q6 NGO  F2 }/ ~5 e* a9 I9 y; _$ t

! ^& @5 T+ ~- r6 M' S- k6 L-- 为作业添加一个步骤
) N" D% j+ E) o9 P' X- EEXEC sp_add_jobstep $ I( ?5 R( h- ~8 U( d8 ]9 o
    @job_name = N'IncreaseUserCashJob',              -- 作业名称9 s' J1 K* ?: E6 k. Q: n
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称
- k- P  t- n* e" F) _6 v    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL); a' J, v. x4 L* L
    @database_name = N'account',                     -- 指定数据库名称/ G4 b. ]: }: @6 P' u0 a% Y2 q2 x
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
& ]1 S" F$ `- S2 |- C( ^    @retry_attempts = 5,                             -- 重试次数3 C0 q! w  u4 B( ^* K) _
    @retry_interval = 5;                             -- 重试间隔(分钟). _5 k0 H. m$ Q+ \0 n
GO5 i, q/ ]0 C2 i, \! w
" H4 A% a5 u! |+ C
-- 为作业添加一个每分钟执行一次的调度
. N8 l$ D# P( \5 X. S  {1 @! WEXEC sp_add_schedule , k2 b2 S/ H& L; b  k; O4 Y8 \: Y0 P* H
    @schedule_name = N'MinuteSchedule',             -- 调度名称
" i. y! \" r; p3 l7 ?    @freq_type = 4,                                  -- 频率类型(4表示每日)1 x7 P& T4 s5 P! `. S: k, y
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
) b0 E  A/ ?* c4 Y8 [" W    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)
; s" R6 G! \- |3 r  I! I# r3 `& t    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)  h% W' F% ?3 S5 W1 ]: z0 i5 J
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)' J: ?: Y& ?+ ~  ~
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
. B3 n0 W  l( w* j+ N% I    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期). r! D$ H: F6 t* U  h6 |5 e
    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)/ Q$ @3 p8 X5 U; X* O# S
GO) ^; R+ ^) u5 F, ^+ M0 `5 q

2 L1 `, ^2 g% ]6 Q* ]-- 将作业与调度关联起来
' i0 X8 l  t" |: `: FEXEC sp_attach_schedule
& L7 F. d1 S1 @5 y5 a# w    @job_name = N'IncreaseUserCashJob',              -- 作业名称
3 ]2 O/ `8 Q" ]8 L    @schedule_name = N'MinuteSchedule';             -- 调度名称
' m, B. x/ n: e' A/ K: KGO
9 P. S9 J. V+ Z# I* U) e# J8 y/ d9 T( ^9 a# |0 s1 ~1 g% b$ {
-- 提交作业创建到SQL Server Agent1 L4 _5 z2 r6 I
EXEC sp_add_jobserver
% m+ M6 J1 v+ e9 R    @job_name = N'IncreaseUserCashJob',              -- 作业名称
0 d6 U8 T* N8 x5 ?0 z( t# ^+ ?/ R9 k    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
$ n! x1 }: f' Q/ J  t4 NGO
* l0 {' C5 E; c- n' r% v! i/ M, A/ ?. O; b  y
9 i* Q* }8 q4 @+ k% c$ m! Z$ I

( ?! S& l) U& ]# ^
# Q/ R' [$ _3 h/ t: k. s
9 D- i9 d  t" Y/ |& g) l" W
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-1-31 21:53 , Processed in 0.061757 second(s), 29 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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