定时查询数据库用定时任务好。根据查询相关公开信息,截止2022年12月23日,在定时查询数据库时使用定时任务能解决定期删除数据,定期调用某个存储过程进行报表的统计信息处理等等 *** 作的需求,比延时消息更方便。
添加一个全局应用程序类,在里面添加如下代码:
void Application_Start(object sender, EventArgs e) {
Timer t = new Timer(3000); //每隔3秒
tEnabled = true;
tAutoReset = true;
tElapsed += new ElapsedEventHandler(aaa);
GCKeepAlive(t);
}
//把下面方法中改成你的数据库 *** 作即可
public void aaa(object sender, ElapsedEventArgs e)
{ FileStream fs = new FileStream("d://atxt", FileModeCreate);
StreamWriter sw = new StreamWriter(fs);
swWriteLine(DateTimeNow);
swClose();
fsClose();
}
解决方案1:
两种想法
1、在你insert的时候,就启动一个线程,延时时间根据你的lastTime 来设定 ,这样存在一个风险:访问量过大,启动的线程过多怎么办
2、lastTime一般根据什么来决定的,建议你设置一个定时器quartz , 每隔2小时或者什么去定时查一遍数据库,所有延期(根据lastTime来决定)的 进行处理
企业管理器-》进入你使用的数据库界面-》管理-》数据库维护计划-》新建维护计划-》选中你的数据库-》下一步-》进行到指定数据库备份页面时,选择执行的时间-》下一步,选对保存的位置和方式。继续下一步直到完成。
注意 SQL server agent 服务必须运行,才会自动执行维护计划。你可以把 启动os时自动启动服务勾上。
IF EXISTS(SELECT FROM msdbdbosysjobs WHERE name='启用pubs数据库')
EXEC msdbdbosp_delete_job @job_name='启用pubs数据库'
--定义创建作业
DECLARE @jobid uniqueidentifier
EXEC msdbdbosp_add_job
@job_name = N'启用pubs数据库',
@job_id = @jobid OUTPUT
--定义作业步骤
DECLARE @sql nvarchar(400),@dbname sysname
SELECT @dbname=N'master', --数据库联机或者脱机只能在master数据库中进行
@sql=N'ALTER DATABASE pubs SET ONLINE' --使用pubs数据库联机(启用)
EXEC msdbdbosp_add_jobstep
@job_id = @jobid,
@step_name = N'启用pubs数据库处理',
@subsystem = 'TSQL',
@database_name=@dbname,
@command = @sql
--创建调度(使用后面专门定义的几种作业调度模板)
EXEC msdbsp_add_jobschedule
@job_id = @jobid,
@name = N'启用pubs数据库处理调度',
@freq_type=4,
@freq_interval=1,
@freq_subday_type=0x1,
@freq_subday_interval=1,
@active_start_time = 075000 --每天07:50分执行
--添加目标服务器
DECLARE @servername sysname
SET @servername=CONVERT(nvarchar(128),SERVERPROPERTY(N'ServerName'))
EXEC msdbdbosp_add_jobserver
@job_id = @jobid,
@server_name = @servername
-- 给你一个例子 不懂在问我
以上就是关于定时查询数据库用延时消息好还是定时任务全部的内容,包括:定时查询数据库用延时消息好还是定时任务、怎么实现定时触发事件 比如想定时向数据库中插入数据、springMVC怎么根据数据库的时间设定定时任务等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)