首页 新闻 会员 周边 捐助

如何实现团购系统的定时关闭团购功能?

0
悬赏园豆:5 [待解决问题]

当团购关闭时间到了的时候,如何让系统自动将数据库中团购表的IsEnd字段设置为true,而不用人工去设置?(asp.net+Sql server)

甲骨蚊的主页 甲骨蚊 | 初学一级 | 园豆:195
提问于:2012-03-18 13:20
< >
分享
所有回答(6)
0

你都已经说了(“时间到了”)。那么就判断时间啊,时间到了你就执行一个SQL语句把数据库中的IsEnd=True。

悟行 | 园豆:12559 (专家六级) | 2012-03-18 13:35

你没明白我的意思,是让系统自动执行关闭团购。也就是到了团购关闭的那个时间点,系统就会自动执行一段sql语句,把IsEnd设置为true,就好像Windows里面的计划任务一样。我找了下网上的资料,sql server有一个“作业”功能,可以实现定时任务,但我总觉得这样做不是很好,所以求救下有没有其它好的办法。

支持(0) 反对(0) 甲骨蚊 | 园豆:195 (初学一级) | 2012-03-18 14:07
0

圖購 應該設置一個開始時間,一個結束時間,還有一個是否結束的標誌。但有用戶登錄時候,先判斷是否結束。如果沒有結束,那麼判斷是否在時間段內,如果是,就顯示。如果不是,那麼會設置結束標誌,並且不顯示。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-18 15:15

用户访问团购的时候,后台是肯定要做一次判断的。但是我想,关闭团购不是在这个时候执行,而是时间一到准时关闭,不依赖是否有用户访问。

支持(0) 反对(0) 甲骨蚊 | 园豆:195 (初学一级) | 2012-03-18 19:05

@Ivenchw: 这个只要执行一次赋值就可以了。这个比较计时。

支持(0) 反对(0) 無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-18 19:53
1

你可以在后台创建一个任务队列,把所有的团购信息:团购编号,开始时间,结束时间放入队列,定时检查判断更新就可以了。这个任务队列可以独立于你的站点,如控制台或或者独立模块!当前页可以直接迭代你的团购信息表,定时判断更新!

kaleyroy | 园豆:360 (菜鸟二级) | 2012-03-18 15:49

嗯,这应该是一种解决办法。但是这个独立程序要不断的去检查检查任务队列,何时检查,检查周期多长呢?太频繁影响性能,太长不能及时更新团购状态。

支持(0) 反对(0) 甲骨蚊 | 园豆:195 (初学一级) | 2012-03-18 19:03

@Ivenchw: 定时判断,不会同步的。

支持(0) 反对(0) 無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-18 19:52

@無限遐想:

嗯,确实如此,定时更新难以控制到同步,就算每秒刷新数据量大的话也不一定准。但是我们如何能做到让 其到期后 触发某个条件 然后执行更新?   这样的话只能计划任务了,用第三方的任务框架实现,比如 Quartz.Net。具体我没用过,不知道对你有没有帮助,你查查看!

支持(0) 反对(0) kaleyroy | 园豆:360 (菜鸟二级) | 2012-03-18 20:06
0

这种方法似乎不大恰当。

IsEnd字段通过数据库更新,如果采用类似于作业方式,存在弊端。原理是该实现是基于轮询的。例如多少秒执行一次。

不如IsEnd改用结束时间。在查询时,则可以用结束时间与当前时间比较。

lucika.zh | 园豆:54 (初学一级) | 2012-03-19 10:33
0

放到前端来作把,类似秒杀的功能,页面一加载就输出剩余时间(服务器端)供js倒计时用,不管刷新不刷新页面时间是越来越少的,到时间为0时发送一次ajax请求去更新数据库IsEnd字段,更新成功之后再页面上给出友好的提示

三桂 | 园豆:3565 (老鸟四级) | 2012-03-20 00:07
0

使用Sql server  agent。

小材小用 | 园豆:639 (小虾三级) | 2012-04-26 08:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册