首页 新闻 赞助 找找看

MVc中的Controller里面的一个方法怎么设置一定时间间隔自动执行?

0
[已解决问题] 解决于 2016-12-16 12:33

Controller里有一个特殊的方法,我想让他每个几秒钟就自动执行,这个该怎么做呢?

NeXT、的主页 NeXT、 | 菜鸟二级 | 园豆:295
提问于:2016-08-31 19:36
< >
分享
最佳答案
0

为什么这种事儿总有人想着放web里面???

奖励园豆:5
顾晓北 | 专家六级 |园豆:10844 | 2016-09-01 08:42

因为有这种需求,不是自己想放就放的!

NeXT、 | 园豆:295 (菜鸟二级) | 2016-09-01 10:42

@NeXT1995: 举个例子,商城固定时间取消订单,把超过24小时没有支付的订单取消掉,难道你还在Controller里面放一个Timer轮训么?

 

说说你的具体需求来看看是不是需要在Controller里面,一般这东西都是可以单独做一个服务的。。。

顾晓北 | 园豆:10844 (专家六级) | 2016-09-01 10:46

@顾晓北: 我做一个类似这样的小功能的,然后把这个功能单独放在了一个控制器里,然后就是想让他实现,用户在页面没有打开的时候,他也会按照自己的时间间隔去请求。大神,你说的那个服务要怎么做呢?

NeXT、 | 园豆:295 (菜鸟二级) | 2016-09-01 10:51

@NeXT1995: 用户页面没打开,那就是连Controller都没有被访问到呢,怎么按时间间隔去执行?我说了这种定时执行一般不放到web里面,因为web服务器(至少是.net的服务器,例如asp.net或者MVC做的站点)经常为了维护而重启,你这固定时间间隔都不能保证一定执行,还有什么意义么?

顾晓北 | 园豆:10844 (专家六级) | 2016-09-01 11:02

@顾晓北: 那如果像那个定时取消订单的,他的原理是怎么样的?要怎么实现呢

NeXT、 | 园豆:295 (菜鸟二级) | 2016-09-01 11:13

@NeXT1995: 很简单啊,写在另外一个项目里面,例如写在一个WindowsService项目,或者哪怕是console或者winform都可以,如果项目小,也完全可以在sqlserver(当然,仅仅是sqlserver,其他数据库并不熟悉)建立一个作业,定时跑就行了。。。

顾晓北 | 园豆:10844 (专家六级) | 2016-09-01 11:16

@顾晓北: 不是很懂,因为我是在校大学生所以实战经历还没那么丰富,有些东西说的我还是不太清楚哦,向您所说的定时跑起来,这一点我不知道究竟要如何去设置

NeXT、 | 园豆:295 (菜鸟二级) | 2016-09-01 20:37

@NeXT1995: 你不知道Timer?web上当然也可以用Timer,不过为什么不建议用?因为web经常为了维护(服务器自动的)重启,不稳定。。。而Console,Winform只要打开就行了,不会重启,除非你自己关闭。。。

顾晓北 | 园豆:10844 (专家六级) | 2016-09-02 08:46
其他回答(5)
0

 你知道quartz不?

xingoo | 园豆:711 (小虾三级) | 2016-08-31 22:20

 一次看到,请赐教

支持(0) 反对(0) NeXT、 | 园豆:295 (菜鸟二级) | 2016-08-31 22:23
0

前台用js定时器 setTimeout,请求后台方法。。或后台模拟。。

小小高 | 园豆:1095 (小虾三级) | 2016-09-01 09:04
0

HangFire  满足你的需求

liuxb1991 | 园豆:661 (小虾三级) | 2016-09-01 09:11

有没有在MVC的HangFire例子

支持(0) 反对(0) NeXT、 | 园豆:295 (菜鸟二级) | 2016-09-01 20:35
0

对的,用定时器就能解决你所说的问题吧。

阿连 | 园豆:136 (初学一级) | 2016-09-01 17:54
0

你直接在前端用JS设置时间轮询 每隔多少时间 请求Controller

狂扁小朋友 | 园豆:10 (初学一级) | 2016-09-02 18:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册