ASP.NET如何定时每秒执行一次任务

时间:2022-08-26 19:17:13
需要每秒查询数据库给预定的用户发送短信。所以需要每秒执行一次页面。如何让后台每秒执行一次方法?

25 个解决方案

#1


可以用定时器,不知道你具体每秒向用户发送信息是什么样一个设计?

#2


ASP.NET如何定时每秒执行一次任务

#3


好像是有在Global.asax里面写的?

#4


公司用的Windows服务 
像这种业务的话 单独开辟一个短信平台来处理
或者在后台开启一个线程处理

#5


用Timer试试看

#6


用windows service吧

#7


在Global.asax里的Application_Start添加个timer

#8


自定的线程和定时器都可以实现,但不精确,因为网站随时可能停止和重启。

#9


首先,机器自动化应用,不是一个 asp.net 程序员可以做的事情。asp.net程序员做点页面提供用户去“点点点”页面查询数据库就行了。

其次,如果你满脑子只是“以数据库为出发点”,那么你无法很好地开发一个管理应用“系统”。

数据库应该只是持久化数据的地方,它不应该是你设计的出发点。就好像一个电话网络,它首要的目的就是把一个语音数据包通过几个中继而传送给另外一端,至于中间的后备系统、重发系统、计费系统、监听系统、统计分析系统、商品系统等等是否需要持久化保存这些数据,那是一个次要的东西,仅仅在性能毫无必要考虑时才会纠结数据库问题。

给用户发短信,程序设计者需要懂得跨不同系统服务而“直接”发短信的技术(也就是说真正的技术跟数据库增删改查根本无关)。如果你说你只是因为不会查询数据库语句而不会发短信,谁也不信。

如果你先贴出你直接发短信的代码来,那么自然就会有人告诉你如何设计数据库表了。

#10


在Global.asax里的Application_Start添加个timer

这个可以

#11


两个方面,你先达到一定的要求,就能顺利解决这个“设计”问题。

1. 你要证明你写过windows service 代码,而不是asp.net。

2. 你要证明你会发短信,你能写一个服务提供给别的程序调用,来直接发短信。而跟数据库无关。

#12


如果预订的客户是后台能够知道的,不需要打开页面的,那你完全可以在global写线程,通过timer来定时执行
如果是需要在用户打开页面到页面关闭这段时间,那你可以通过js的setInterval来定时执行

#14


写windows服务不就好了。

#15


ASP.NET如何定时每秒执行一次任务
一秒执行一次给预定的用户发送短信,这个用户肯定很悲催,一秒收到一条,要死啊,这什么逻辑?

#16


这个就不需要使用界面来完成了,自己写个Windows Service,定时完成你需要的功能

#17


引用 15 楼 blue_apple2006 的回复:
ASP.NET如何定时每秒执行一次任务
一秒执行一次给预定的用户发送短信,这个用户肯定很悲催,一秒收到一条,要死啊,这什么逻辑?


这么服务系统和数据库系统更悲催,一旦用户数量扩大到刚够满足办公楼的一层中的客户的水平,服务器就几乎瘫痪了。这类做法的后果其实就是一些公司干不了大一点的项目的原因。

#18


quartz嘛

#20


18#正解啊  quarzt.net就行了

但是明显LZ的需求还没搞明白. 为啥要1s刷新数据库?

难道你1s就给发送短信吗? 很明显不是  是达到某个条件触发  或者  定时   正常来说只有这2个

如果是第一个  你可以使用触发器判断啊  比如 温度>35度 然后使用触发器调用webservice发送短信警告用户

如果是第二个 就是18#说的quarzt.net调度器 定时12点去发..

任何功能都不会1s去刷新数据库的..你思路没搞明白 所以我觉得你以后问问题先说要实现什么.

并不是说 如何实现....因为可能你要实现的东西本身就是错误的....

#21


而且 记住你是asp.net 就别扯哪些所谓的 什么Global啦 timer啦 线程啦,因为这些跟你没什么关系.

#22


我是不是可以理解为:你每隔一秒就要查询有那些预订过的客户,然后给他们发短信?
如果是这样,干吗不在他们预订时就发短信?
如果实在要查询再发信息,一般做服务程序,asp.net 做这个不合适。

#23


这种工作根本就不是ASP.NET该做的事。应该用Windows Service来实现。

#24


选择Windows Service吧 

#25


用asp.net可以常开一个页面,不关掉这个页面,这个页面一直循环就可以了.

#1


可以用定时器,不知道你具体每秒向用户发送信息是什么样一个设计?

#2


ASP.NET如何定时每秒执行一次任务

#3


好像是有在Global.asax里面写的?

#4


公司用的Windows服务 
像这种业务的话 单独开辟一个短信平台来处理
或者在后台开启一个线程处理

#5


用Timer试试看

#6


用windows service吧

#7


在Global.asax里的Application_Start添加个timer

#8


自定的线程和定时器都可以实现,但不精确,因为网站随时可能停止和重启。

#9


首先,机器自动化应用,不是一个 asp.net 程序员可以做的事情。asp.net程序员做点页面提供用户去“点点点”页面查询数据库就行了。

其次,如果你满脑子只是“以数据库为出发点”,那么你无法很好地开发一个管理应用“系统”。

数据库应该只是持久化数据的地方,它不应该是你设计的出发点。就好像一个电话网络,它首要的目的就是把一个语音数据包通过几个中继而传送给另外一端,至于中间的后备系统、重发系统、计费系统、监听系统、统计分析系统、商品系统等等是否需要持久化保存这些数据,那是一个次要的东西,仅仅在性能毫无必要考虑时才会纠结数据库问题。

给用户发短信,程序设计者需要懂得跨不同系统服务而“直接”发短信的技术(也就是说真正的技术跟数据库增删改查根本无关)。如果你说你只是因为不会查询数据库语句而不会发短信,谁也不信。

如果你先贴出你直接发短信的代码来,那么自然就会有人告诉你如何设计数据库表了。

#10


在Global.asax里的Application_Start添加个timer

这个可以

#11


两个方面,你先达到一定的要求,就能顺利解决这个“设计”问题。

1. 你要证明你写过windows service 代码,而不是asp.net。

2. 你要证明你会发短信,你能写一个服务提供给别的程序调用,来直接发短信。而跟数据库无关。

#12


如果预订的客户是后台能够知道的,不需要打开页面的,那你完全可以在global写线程,通过timer来定时执行
如果是需要在用户打开页面到页面关闭这段时间,那你可以通过js的setInterval来定时执行

#13


#14


写windows服务不就好了。

#15


ASP.NET如何定时每秒执行一次任务
一秒执行一次给预定的用户发送短信,这个用户肯定很悲催,一秒收到一条,要死啊,这什么逻辑?

#16


这个就不需要使用界面来完成了,自己写个Windows Service,定时完成你需要的功能

#17


引用 15 楼 blue_apple2006 的回复:
ASP.NET如何定时每秒执行一次任务
一秒执行一次给预定的用户发送短信,这个用户肯定很悲催,一秒收到一条,要死啊,这什么逻辑?


这么服务系统和数据库系统更悲催,一旦用户数量扩大到刚够满足办公楼的一层中的客户的水平,服务器就几乎瘫痪了。这类做法的后果其实就是一些公司干不了大一点的项目的原因。

#18


quartz嘛

#19


#20


18#正解啊  quarzt.net就行了

但是明显LZ的需求还没搞明白. 为啥要1s刷新数据库?

难道你1s就给发送短信吗? 很明显不是  是达到某个条件触发  或者  定时   正常来说只有这2个

如果是第一个  你可以使用触发器判断啊  比如 温度>35度 然后使用触发器调用webservice发送短信警告用户

如果是第二个 就是18#说的quarzt.net调度器 定时12点去发..

任何功能都不会1s去刷新数据库的..你思路没搞明白 所以我觉得你以后问问题先说要实现什么.

并不是说 如何实现....因为可能你要实现的东西本身就是错误的....

#21


而且 记住你是asp.net 就别扯哪些所谓的 什么Global啦 timer啦 线程啦,因为这些跟你没什么关系.

#22


我是不是可以理解为:你每隔一秒就要查询有那些预订过的客户,然后给他们发短信?
如果是这样,干吗不在他们预订时就发短信?
如果实在要查询再发信息,一般做服务程序,asp.net 做这个不合适。

#23


这种工作根本就不是ASP.NET该做的事。应该用Windows Service来实现。

#24


选择Windows Service吧 

#25


用asp.net可以常开一个页面,不关掉这个页面,这个页面一直循环就可以了.