找回密码
 立即注册
查看: 2894|回复: 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作业计划每分钟运行一次-----------------------9 T) C1 k# S5 i1 V
USE msdb;3 K6 C. s2 I# ?8 ^
GO4 G3 P, I% R# U7 w2 P' p# e* s
8 `$ B% ~& r$ Y% ]$ U1 _+ O
-- 如果作业已存在,则先删除它
) M! \' x& V# n# q% @+ KIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
# @) M6 P/ ~6 x2 p    EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';  w1 z) i. b1 k, f9 _3 N! {
GO  z  U% A$ B) \/ r  O

1 U& I! R$ Y9 J. b1 `6 @# Q-- 创建新的作业$ ^( H& R* M  C& W$ @
EXEC sp_add_job
6 q; x. A; Z1 b, Q: `; R6 @    @job_name = N'IncreaseUserCashJob',               -- 作业名称* M' n* a7 K4 h' p
    @enabled = 1,                                    -- 启用作业1 X) T$ A6 X0 r7 S4 [
    @notify_level_eventlog = 0,                      -- 不在事件日志中记录作业状态更改# J2 V( i( Y! ?& N2 ]- \6 S7 @9 x
    @notify_level_email = 0,                         -- 不发送电子邮件通知
: B; R$ S$ k6 a2 h2 h+ ]( f5 r    @notify_level_netsend = 0,                       -- 不发送网络消息通知( L. W/ ]6 D- L5 o3 g5 e; Z- [
    @notify_level_page = 0,                          -- 不发送寻呼通知
9 \' h! W2 b6 i9 [% Z& I1 V. I    @delete_level = 0,                               -- 不自动删除作业
/ V+ O5 N# _$ A) z+ x( S. Y    @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述  m( \9 ^3 |) f- u' t3 E
    @category_name = N'[Uncategorized (Local)]',     -- 作业类别
& @8 O2 i' c! W2 Q! Z/ k9 z7 _- d    @owner_login_name = N'YourLoginName',            -- 作业所有者(请替换为实际的登录名)/ T, a$ k& Q& ^: ^& q9 d$ f3 N5 o
    @notify_email_operator_name = N'';               -- 不指定电子邮件通知操作员
3 k6 T. }% ~' Z/ Z- e8 sGO7 K, e5 v6 ~0 q. c  z
; a% z2 n) Y: k0 `
-- 为作业添加一个步骤% a, X- }7 D5 F) N6 @( ~, a0 b
EXEC sp_add_jobstep 2 N, [( R0 d* ]. }) v8 h
    @job_name = N'IncreaseUserCashJob',              -- 作业名称# j8 p8 K) U0 o  a1 T/ e
    @step_name = N'ExecuteStoredProcedure',         -- 步骤名称" E5 ^3 U4 s; N5 C
    @subsystem = N'TSQL',                           -- 指定步骤使用的子系统(这里是Transact-SQL)7 u; \; m) W9 `/ A
    @database_name = N'account',                     -- 指定数据库名称
. B( g8 L. }; r9 _+ g0 K    @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
% R$ [4 ]) B. f5 E    @retry_attempts = 5,                             -- 重试次数
- U( W) y2 A8 r  ^, G# M( J: i    @retry_interval = 5;                             -- 重试间隔(分钟)
  q/ M; W0 w7 RGO, G( K! N! L! r9 A( J! A

( ?0 n4 w% m4 k) b( Z( p-- 为作业添加一个每分钟执行一次的调度8 m. Q3 @! _+ ~; G9 O4 q& j
EXEC sp_add_schedule
8 G) ^$ X+ U( F: e0 y$ ?! D    @schedule_name = N'MinuteSchedule',             -- 调度名称
& |  t; l  A2 v    @freq_type = 4,                                  -- 频率类型(4表示每日)
9 {7 z# q* q& J' j4 ~    @freq_interval = 1,                              -- 对于每日频率,这里设置为1表示每天都执行# u1 a5 K9 ~& D3 h
    @freq_subday_type = 4,                           -- 子日频率类型(4表示分钟), A: T- `0 Q; v2 e; u3 Z; x( x
    @freq_subday_interval = 1,                       -- 子日频率间隔(每分钟执行一次)2 L2 }9 y; I* V( p( ]9 @/ @* o+ k+ h
    @active_start_date = 20250118,                   -- 活动开始日期(格式YYYYMMDD)9 o' G+ i2 [, U1 R7 [
    @active_start_time = 0,                          -- 活动开始时间(以24小时制表示,0表示午夜)
7 y. L- n# i+ u9 F7 {    @active_end_date = 99991231,                     -- 活动结束日期(通常设置为一个遥远的未来日期)
4 C# ?' O4 G' |: @. ]' y, J    @active_end_time = 235959;                       -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
5 M( |/ \4 d& {2 E6 _GO
9 E  h6 G) [$ f
2 q8 j; W1 z1 E% `* j-- 将作业与调度关联起来' g1 l$ s  X% w, x! Q% J
EXEC sp_attach_schedule
8 u( C4 f- g$ [) w, V    @job_name = N'IncreaseUserCashJob',              -- 作业名称& x" U6 ]$ p3 ^, p
    @schedule_name = N'MinuteSchedule';             -- 调度名称
9 t+ q# Y( l; r5 |; ]GO
% b0 v: U6 f8 y9 ^
; V1 @7 ?5 C3 }-- 提交作业创建到SQL Server Agent5 a' o" B. B, n. R/ ~/ z4 P
EXEC sp_add_jobserver 3 E5 }3 Z9 c' O' d
    @job_name = N'IncreaseUserCashJob',              -- 作业名称
: }" w2 K* ^5 p+ H& g6 l    @server_name = N'(LOCAL)';                       -- 服务器名称(对于本地服务器使用'(LOCAL)')9 i3 m( E5 ~" p9 ^% V5 N
GO! M3 D  b! o; X1 {
  x% p5 F. A/ Y0 k9 n! F- r+ S
6 t/ q% x6 Z. ]; f% m$ Z! E

, Y* L( Q# B! T$ P8 J5 r5 B! V7 C' R( U& v+ C, i: M; \
  o& p% B) q6 p" F; r, u
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


Archiver|小黑屋|EGameol

GMT+8, 2026-7-3 04:45 , Processed in 0.247234 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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