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

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

[复制链接]

2

主题

75

回帖

883

积分

高级会员

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

2

主题

75

回帖

883

积分

高级会员

积分
883
金钱
742
贡献
64
注册时间
2024-9-13
发表于 2025-1-18 17:04:14 | 显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------1 f/ l9 V# Z2 z7 k9 x  [( y! \
USE msdb;
7 g* I) V/ ?9 l+ ?GO
7 p; [" U0 E5 g& N8 j8 l  t( d1 C! K9 F7 p& M
-- 如果作业已存在,则先删除它
2 D4 U1 `- r- `  I9 m! RIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')4 g; a& w7 C: g
    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';& o; N* }( F4 x/ k' z- M
GO) B, f& O% S+ y7 X

9 T, J4 O8 l+ p-- 创建新的作业
( @9 W- k. J+ c; T) g. m; ~* SEXEC sp_add_job ) i1 p2 Y  d" u* M# N  ~
    @job_name = N'IncreaseUserCashJob',               -- 作业名称+ N2 F% N. }: d7 O2 a) V- P2 O
    @enabled = 1,                                    -- 启用作业
8 |3 k+ D' d; ?/ H6 r% g+ B* f    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改
1 z$ k! o2 P% d* K    @notify_level_email = 0,                         -- 不发送电子邮件通知
/ V- w6 S2 a6 J& f, ?! k/ K5 K' f    @notify_level_netsend = 0,                       -- 不发送网络消息通知
8 L( X2 a4 d% M5 M4 l) ?    @notify_level_page = 0,                          -- 不发送寻呼通知
; H. H, ^" ^0 R6 w$ P    @delete_level = 0,                               -- 不自动删除作业
  s7 e7 Y+ z( p    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述+ @: E8 I9 g8 t+ N( m3 A, G
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
( J% d* t, ?7 s    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)
9 [' |# v) R- m1 t    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
+ k0 ]; a6 a8 [7 f  I# NGO
7 \* l0 Y. J. _* ?$ p, p3 j# Q$ f2 A
-- 为作业添加一个步骤
% k8 _9 T! s; i- p; g1 [EXEC sp_add_jobstep
4 ]6 y' T9 r) U. r7 j  \: X    @job_name = N'IncreaseUserCashJob',              -- 作业名称
* g4 n4 ~" W* y( Z+ c$ G$ R) A    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称1 x0 n2 `" _& g8 h2 a1 t
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)
, g# E3 f/ m) V  g6 K2 X    @database_name = N'account',                     -- 指定数据库名称$ b, }$ N, J& j) B& Y( {
    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
) V( z. Z9 M5 g9 w    @retry_attempts = 5,                             -- 重试次数
4 [& l4 T+ o- S6 Y5 s( c    @retry_interval = 5;                             -- 重试间隔(分钟)9 r; {$ s1 V/ _  k  O: y' z( L5 I
GO
% h. G1 \8 l, U) l* x7 T' x
+ N  c$ s# t9 t* y4 M5 |! Z8 M-- 为作业添加一个每分钟执行一次的调度
0 n" s4 C7 B: _8 H; JEXEC sp_add_schedule
, m- {& b- _- u9 Y* _% O    @schedule_name = N'MinuteSchedule',             -- 调度名称4 N: i) `# {4 {
    @freq_type = 4,                                  -- 频率类型(4表示每日)! V: L; c( k& [$ z
    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行
8 n2 u: \. \9 W* H, H0 {0 J- T& u    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟)9 O+ Y" M4 N4 [/ j( W# O
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)
) ~6 I3 V% x2 R$ O0 Z    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)
, A* g# u, a  ?% d4 u    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
0 M3 v8 h8 B" N! x$ b1 U' o    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
& ^* m$ k) b' C1 P; ^2 W    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
6 M8 [  P* K4 x# Y* D- G/ m/ J* AGO' l+ L2 E7 o! T* E% U

3 p# V5 j9 D3 c( w. q-- 将作业与调度关联起来
5 r' x9 C$ J: o. a9 ~. aEXEC sp_attach_schedule
" Z, C, j  o) u# s    @job_name = N'IncreaseUserCashJob',              -- 作业名称" |) i0 u: S- G; C: c
    @schedule_name = N'MinuteSchedule';             -- 调度名称
( F+ Z- J9 G; L8 ], C+ TGO# I- M2 v' h4 k! N; y. E0 l1 N& R' b
% I$ t: Q7 O9 ^% j! p
-- 提交作业创建到SQL Server Agent
/ S4 Y% I2 z% J4 ?) O7 pEXEC sp_add_jobserver ( z( a) \. M6 ^# B; x/ B
    @job_name = N'IncreaseUserCashJob',              -- 作业名称9 z# f$ c! B/ f+ A$ x: p5 i
    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')
$ i  _9 Q( Q+ e4 NGO8 W4 P; d) k9 g& @
" V/ h" ^# e( v+ m1 ?6 B3 u/ B

- P# x4 v6 \. W# R; a, c9 n% Z: h/ k3 F' F9 ]* l

# Y; @: o; e5 i7 ]- D; `7 B
+ p/ A8 F- K0 E4 ?- L
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-8-20 07:57 , Processed in 0.059812 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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