每次到了需要触发任务的时间,就从A表读取需要的字段(比如:任务ID),插入到B表中,接受任务的人就可以看到自己的任务了
听起来和WindowsTask很相像。
难题在这里:触发周期会不一样,该怎么计算触发时间?
-------------------------------------------------------当前表单设计可以获取到的内容------------------------------------------------------------
一次型任务会要求用户输入日期,时间(整点,24小时制);
每天型任务要求用户输入的只有时间;
这两个都容易,比较需求时间和当前时间就行,一个where条件就过滤出来了
每周型任务需要用户输入的是周几,时间;
每月型任务需要输入的是每月的几号(纯数字),时间(这个貌似就要去判断月份并且限制输入范围了)
------------------------------------------------------------------------------------------------------------------------------------------------------------
根据获取到的内容,可以计算下一个触发事件么?
当前思路,写一个页面用来往B表插入数据,然后就用WindowsTask去触发IE并访问这个页面的地址。
但是每个任务的周期不一样,就得写好多页面。对于这个需求不可行。
或者利用sqlserver的作业,设置每天去执行。然后判断哪些记录到了触发时间,可是这个触发时间和下一个触发时间又不好计算。
如果有好的思路或者办法,请不吝赐教
59 个解决方案
#1
琪琪,我的数据库的书写触发器的正在这里,我帮你先找找哈
#2
#3
难点不是怎么触发,是什么时候触发~
#4
琪琪,你要解决时间周期的话,可以试试数据库里的代理作业
#5
我知道代理作业呢,可是在代理作业里面也要计算触发时间呀,每周,每月的,都不一样呢~
#6
如果没办法的话,只能去多做几个代理作业了呢~
这样就一次性把触发的时刻写死了,不能让用户去定义了~
这样就一次性把触发的时刻写死了,不能让用户去定义了~
#7
原来师太也是技术人员.
#8
我觉得你应该把帖子发到SQL Server区,请教版主黄钊吉
#9
用户定义的时间?不能记录之后存入A表么?
#10
存入数据表当然可以,存入是是个周期性时间,不是具体的一个时间点,这个点触发了,还得去计算下一个点~
#11
我感觉难点在于这个“周期性”,是用户指定当前的点,然后下个点根据几天来算?比如说:用户输入2014-3-12有任务,然后下个点就是8天后?或者说10天后?需求是不是这样的
#12
三个字段控制,一个任务发起时间,一个循环方式,一个已执行次数
判断 任务发起时间+循环方式(例如每两天执行一次,就是2)*已执行次数<当前系统时间 则发起任务
按周循环的也类似,就是已执行次数中要加入本周已执行过的日期的或值,执行完本周最后一次后再把已执行次数加1
按月的道理一样,中间会用到一些关于时间的算法
判断 任务发起时间+循环方式(例如每两天执行一次,就是2)*已执行次数<当前系统时间 则发起任务
按周循环的也类似,就是已执行次数中要加入本周已执行过的日期的或值,执行完本周最后一次后再把已执行次数加1
按月的道理一样,中间会用到一些关于时间的算法
#13
三个字段控制,一个任务发起时间,一个循环方式,一个已执行次数
判断 任务发起时间+循环方式(例如每两天执行一次,就是2)*已执行次数<当前系统时间 则发起任务
按周循环的也类似,就是已执行次数中要加入本周已执行过的日期的或值,执行完本周最后一次后再把已执行次数加1
按月的道理一样,中间会用到一些关于时间的算法
#14
我感觉难点在于这个“周期性”,是用户指定当前的点,然后下个点根据几天来算?比如说:用户输入2014-3-12有任务,然后下个点就是8天后?或者说10天后?需求是不是这样的
#15
如果给任务表加上两个字段: 触发周期, 上次触发时间.
计划任务依然是每天运行并且读取所有任务, 如果发现有任务的 触发周期 <= 当前时间 - 上次触发时间 时, 进行任务分配工作.
这个方案是否可行?
计划任务依然是每天运行并且读取所有任务, 如果发现有任务的 触发周期 <= 当前时间 - 上次触发时间 时, 进行任务分配工作.
这个方案是否可行?
#16
不懂
#17
如果给任务表加上两个字段: 触发周期, 上次触发时间.
计划任务依然是每天运行并且读取所有任务, 如果发现有任务的 触发周期 <= 当前时间 - 上次触发时间 时, 进行任务分配工作.
这个方案是否可行?
#18
又想了一下, 把上次触发时间改成下次运行时间更好.
对于1次性任务, 触发周期写成0就可以.
然后写一个后台扫描程序定时查看表A, 当有数据行的下次运行时间到达并且非一次性任务
更新表A下次运行时间=下次运行时间+触发周期, 同时向表B插入数据
对于1次性任务, 触发周期写成0就可以.
然后写一个后台扫描程序定时查看表A, 当有数据行的下次运行时间到达并且非一次性任务
更新表A下次运行时间=下次运行时间+触发周期, 同时向表B插入数据
#19
你这个帖子吸引了这么多水源的人
#20
又想了一下, 把上次触发时间改成下次运行时间更好.
对于1次性任务, 触发周期写成0就可以.
然后写一个后台扫描程序定时查看表A, 当有数据行的下次运行时间到达并且非一次性任务
更新表A下次运行时间=下次运行时间+触发周期, 同时向表B插入数据
你的两个思路一个是记录上次处理时间,另一个是计算下次处理时间,都不错。
接下来我要研究的就是sqlserver里面的时间算法咯
毕竟12个月的每个月天数都不一样呢
#21
你这个帖子吸引了这么多水源的人
你怎么会知道他们混水区呢?
#22
都是我自己前面灌水太久了~
你这个帖子吸引了这么多水源的人
你怎么会知道他们混水区呢?
貌似有个是波斯小妖,其实有个通用参考的,就是技术区这边分不是很高……
#23
客户要求可以自己去制定一些任务,这些任务在制定的时候会包括触发周期(一次,每天,每周,每月),任务的具体内容是存在A表中的。
每次到了需要触发任务的时间,就从A表读取需要的字段(比如:任务ID),插入到B表中,接受任务的人就可以看到自己的任务了
听起来和WindowsTask很相像。
难题在这里:触发周期会不一样,该怎么计算触发时间?
-------------------------------------------------------当前表单设计可以获取到的内容------------------------------------------------------------
一次型任务会要求用户输入日期,时间(整点,24小时制);
每天型任务要求用户输入的只有时间;
这两个都容易,比较需求时间和当前时间就行,一个where条件就过滤出来了
每周型任务需要用户输入的是周几,时间;
每月型任务需要输入的是每月的几号(纯数字),时间(这个貌似就要去判断月份并且限制输入范围了)
------------------------------------------------------------------------------------------------------------------------------------------------------------
根据获取到的内容,可以计算下一个触发事件么?
当前思路,写一个页面用来往B表插入数据,然后就用WindowsTask去触发IE并访问这个页面的地址。
但是每个任务的周期不一样,就得写好多页面。对于这个需求不可行。
或者利用sqlserver的作业,设置每天去执行。然后判断哪些记录到了触发时间,可是这个触发时间和下一个触发时间又不好计算。
如果有好的思路或者办法,请不吝赐教
spring 定时器
#24
spring 定时器
不过貌似记得spring不是java的框架么?
#25
貌似有个是波斯小妖,其实有个通用参考的,就是技术区这边分不是很高……
.NET技术分已经超过我了
#26
考虑到资源问题,还是不在后台写定时了。就写一个代理作业,设置为每天某个时间点去执行~
你的两个思路一个是记录上次处理时间,另一个是计算下次处理时间,都不错。
接下来我要研究的就是sqlserver里面的时间算法咯
毕竟12个月的每个月天数都不一样呢
简单的办法就是在C#算出时间再传回去. 遇到30直接AddMonths(1)
#27
简单的办法就是在C#算出时间再传回去. 遇到30直接AddMonths(1)
这样就要在程序里去定时扫描了~
#28
我也想这样呢~ 简单的办法就是在C#算出时间再传回去. 遇到30直接AddMonths(1)
这样就要在程序里去定时扫描了~
程序定时扫描貌似比数据库里要容易点
#29
自己写个windows服务来执行。
或者用现成的:Quartz.NET
或者用现成的:Quartz.NET
#30
程序定时扫描貌似比数据库里要容易点
#31
自己写个windows服务来执行。
或者用现成的:Quartz.NET
晚上回去就研究~
ps:这个头像怎么会动的? 我也试过gif的,可是不会动呀
#32
#33
这个需求我觉得可以和客户沟通变通下,不要从技术上整死!
#34
这个需求我觉得可以和客户沟通变通下,不要从技术上整死!
不想再去设置WindowsTask或者是sqlserver代理作业~
#35
来学习一下大神们的思路
都没用过,都需要去研究~
自己写个windows服务来执行。
或者用现成的:Quartz.NET
晚上回去就研究~
ps:这个头像怎么会动的? 我也试过gif的,可是不会动呀
#36
我的解决方案:
第一步 定义好任务类型:
单次执行 type=1
每周执行 type=2
每月执行 type=3
每种类型 都要有个时间点,告诉程序什么时候发布.
第二步 查询当天需要执行的任务:
每天 0 点的时候 根据这三种任务找出当天需要执行的任务
若当天有新任务发布,则重新查找一次.
第三步 循环任务列表发布任务:
然后就是弄个循环 可以是每1分钟一次或者每5分钟一次
看是否达到发布任务的时间
第一步 定义好任务类型:
单次执行 type=1
每周执行 type=2
每月执行 type=3
每种类型 都要有个时间点,告诉程序什么时候发布.
第二步 查询当天需要执行的任务:
每天 0 点的时候 根据这三种任务找出当天需要执行的任务
若当天有新任务发布,则重新查找一次.
第三步 循环任务列表发布任务:
然后就是弄个循环 可以是每1分钟一次或者每5分钟一次
看是否达到发布任务的时间
#37
一种方法是开发一个windows服务,用timer定时调用“待分配任务查询及插入操作”
另一种方法是,利用数据库的定时任务,比如:oracle的JOB 、 Sqlserver的JOB,调用存储过程,执行“待分配任务查询及插入操作”
这里需要注意的是执行周期要尽可能的小,至少小于客户允许的运行周期的一半。
另:加入用户新增任务比较频繁,随着时间推移任务表记录会比较大,你可以考虑将任务表拆分成两个。第一个表存放尚未完成任务记录;第二个表存放已完成任务记录
另一种方法是,利用数据库的定时任务,比如:oracle的JOB 、 Sqlserver的JOB,调用存储过程,执行“待分配任务查询及插入操作”
这里需要注意的是执行周期要尽可能的小,至少小于客户允许的运行周期的一半。
另:加入用户新增任务比较频繁,随着时间推移任务表记录会比较大,你可以考虑将任务表拆分成两个。第一个表存放尚未完成任务记录;第二个表存放已完成任务记录
#38
每天任务好说,每周和每月的,难点在于确定是否到达任务发布时间,并且计算下一次发布时间。
#39
一种方法是开发一个windows服务,用timer定时调用“待分配任务查询及插入操作”
另一种方法是,利用数据库的定时任务,比如:oracle的JOB 、 Sqlserver的JOB,调用存储过程,执行“待分配任务查询及插入操作”
这里需要注意的是执行周期要尽可能的小,至少小于客户允许的运行周期的一半。
另:加入用户新增任务比较频繁,随着时间推移任务表记录会比较大,你可以考虑将任务表拆分成两个。第一个表存放尚未完成任务记录;第二个表存放已完成任务记录
嗯,A表只管存放制定的任务,B表用来记录触发的任务和完成的状态。
我也想利用现成的东西,现在用户是想自己去页面上设置维护任务触发周期和具体的时间点。
#40
可自己单独写个程序呀!即时判断系统时间跟数据库存储时间在执行操作就好了。。
#41
女的,上照片就有一大波狼,过来帮你了
#42
参考Sql Server 2005 管理->维护计划
#43
1分钟,5分钟也太频繁了吧~
每天任务好说,每周和每月的,难点在于确定是否到达任务发布时间,并且计算下一次发布时间。
每1分钟 一次 不会很频繁的, 你可以自己做的测试
比如当天有1000个任务要发布,你每一分钟 执行一次
for int i=0;i<1000;i++
这个有什么压力呢
至于第二个问题 你不需要去确认 每周和每月这样任务类型的下一个执行时间,
因为你在定制任务的时候 肯定要有个字段 来存的 比如每周的 为 星期三 星期五 这样
每月的 就存 5号 10号 这样的
你在查询当天需要发布的任务的时候 是需要根据任务类型 分开执行sql的
你要对单次, 每周, 每月 三种类型 分别动态创建 当天的三个sql语句 ,这个语句 也不是很复杂,就是根据当天
计算出 是当月的第几天 ,本周的星期几 然后拼接一下sql就出来了
#44
#45
1分钟,5分钟也太频繁了吧~
每天任务好说,每周和每月的,难点在于确定是否到达任务发布时间,并且计算下一次发布时间。
还有一种 就是间隔天数是由客户自己定义的 比如 每3天执行一次
这种也很好处理. 我们将他看成是单次执行的,只是在发布任务时去修改一下下次发布的日期,我想这个很容易吧..
#46
Sql Server 2005 打个sp2补丁
#47
Sql Server 2005 打个sp2补丁
客户不想在sqlserver里面或者WindowsTask里面去维护这个触发周期和具体时间,他想在页面上设置呢~
#48
我们用的是2008~
Sql Server 2005 打个sp2补丁
客户不想在sqlserver里面或者WindowsTask里面去维护这个触发周期和具体时间,他想在页面上设置呢~
那只能做服务了,只有服务组件才能实现离线自动触发
#49
那只能做服务了,只有服务组件才能实现离线自动触发
多谢啦~
#50
你可以看看quartz的资料,或许能够帮到你;
quartz中的调度器、任务和触发器可以处理你提到的那些东西。
quartz中的调度器、任务和触发器可以处理你提到的那些东西。
#1
琪琪,我的数据库的书写触发器的正在这里,我帮你先找找哈
#2
#3
琪琪,我的数据库的书写触发器的正在这里,我帮你先找找哈
#4
琪琪,你要解决时间周期的话,可以试试数据库里的代理作业
#5
琪琪,你要解决时间周期的话,可以试试数据库里的代理作业
#6
如果没办法的话,只能去多做几个代理作业了呢~
这样就一次性把触发的时刻写死了,不能让用户去定义了~
这样就一次性把触发的时刻写死了,不能让用户去定义了~
#7
琪琪,我的数据库的书写触发器的正在这里,我帮你先找找哈
原来师太也是技术人员.
#8
我觉得你应该把帖子发到SQL Server区,请教版主黄钊吉
#9
如果没办法的话,只能去多做几个代理作业了呢~
这样就一次性把触发的时刻写死了,不能让用户去定义了~
用户定义的时间?不能记录之后存入A表么?
#10
用户定义的时间?不能记录之后存入A表么?
#11
存入数据表当然可以,存入是是个周期性时间,不是具体的一个时间点,这个点触发了,还得去计算下一个点~ 用户定义的时间?不能记录之后存入A表么?
我感觉难点在于这个“周期性”,是用户指定当前的点,然后下个点根据几天来算?比如说:用户输入2014-3-12有任务,然后下个点就是8天后?或者说10天后?需求是不是这样的
#12
三个字段控制,一个任务发起时间,一个循环方式,一个已执行次数
判断 任务发起时间+循环方式(例如每两天执行一次,就是2)*已执行次数<当前系统时间 则发起任务
按周循环的也类似,就是已执行次数中要加入本周已执行过的日期的或值,执行完本周最后一次后再把已执行次数加1
按月的道理一样,中间会用到一些关于时间的算法
判断 任务发起时间+循环方式(例如每两天执行一次,就是2)*已执行次数<当前系统时间 则发起任务
按周循环的也类似,就是已执行次数中要加入本周已执行过的日期的或值,执行完本周最后一次后再把已执行次数加1
按月的道理一样,中间会用到一些关于时间的算法
#13
三个字段控制,一个任务发起时间,一个循环方式,一个已执行次数
判断 任务发起时间+循环方式(例如每两天执行一次,就是2)*已执行次数<当前系统时间 则发起任务
按周循环的也类似,就是已执行次数中要加入本周已执行过的日期的或值,执行完本周最后一次后再把已执行次数加1
按月的道理一样,中间会用到一些关于时间的算法
#14
我感觉难点在于这个“周期性”,是用户指定当前的点,然后下个点根据几天来算?比如说:用户输入2014-3-12有任务,然后下个点就是8天后?或者说10天后?需求是不是这样的
#15
如果给任务表加上两个字段: 触发周期, 上次触发时间.
计划任务依然是每天运行并且读取所有任务, 如果发现有任务的 触发周期 <= 当前时间 - 上次触发时间 时, 进行任务分配工作.
这个方案是否可行?
计划任务依然是每天运行并且读取所有任务, 如果发现有任务的 触发周期 <= 当前时间 - 上次触发时间 时, 进行任务分配工作.
这个方案是否可行?
#16
不懂
#17
如果给任务表加上两个字段: 触发周期, 上次触发时间.
计划任务依然是每天运行并且读取所有任务, 如果发现有任务的 触发周期 <= 当前时间 - 上次触发时间 时, 进行任务分配工作.
这个方案是否可行?
#18
又想了一下, 把上次触发时间改成下次运行时间更好.
对于1次性任务, 触发周期写成0就可以.
然后写一个后台扫描程序定时查看表A, 当有数据行的下次运行时间到达并且非一次性任务
更新表A下次运行时间=下次运行时间+触发周期, 同时向表B插入数据
对于1次性任务, 触发周期写成0就可以.
然后写一个后台扫描程序定时查看表A, 当有数据行的下次运行时间到达并且非一次性任务
更新表A下次运行时间=下次运行时间+触发周期, 同时向表B插入数据
#19
你这个帖子吸引了这么多水源的人
#20
又想了一下, 把上次触发时间改成下次运行时间更好.
对于1次性任务, 触发周期写成0就可以.
然后写一个后台扫描程序定时查看表A, 当有数据行的下次运行时间到达并且非一次性任务
更新表A下次运行时间=下次运行时间+触发周期, 同时向表B插入数据
你的两个思路一个是记录上次处理时间,另一个是计算下次处理时间,都不错。
接下来我要研究的就是sqlserver里面的时间算法咯
毕竟12个月的每个月天数都不一样呢
#21
你这个帖子吸引了这么多水源的人
你怎么会知道他们混水区呢?
#22
都是我自己前面灌水太久了~
你这个帖子吸引了这么多水源的人
你怎么会知道他们混水区呢?
貌似有个是波斯小妖,其实有个通用参考的,就是技术区这边分不是很高……
#23
客户要求可以自己去制定一些任务,这些任务在制定的时候会包括触发周期(一次,每天,每周,每月),任务的具体内容是存在A表中的。
每次到了需要触发任务的时间,就从A表读取需要的字段(比如:任务ID),插入到B表中,接受任务的人就可以看到自己的任务了
听起来和WindowsTask很相像。
难题在这里:触发周期会不一样,该怎么计算触发时间?
-------------------------------------------------------当前表单设计可以获取到的内容------------------------------------------------------------
一次型任务会要求用户输入日期,时间(整点,24小时制);
每天型任务要求用户输入的只有时间;
这两个都容易,比较需求时间和当前时间就行,一个where条件就过滤出来了
每周型任务需要用户输入的是周几,时间;
每月型任务需要输入的是每月的几号(纯数字),时间(这个貌似就要去判断月份并且限制输入范围了)
------------------------------------------------------------------------------------------------------------------------------------------------------------
根据获取到的内容,可以计算下一个触发事件么?
当前思路,写一个页面用来往B表插入数据,然后就用WindowsTask去触发IE并访问这个页面的地址。
但是每个任务的周期不一样,就得写好多页面。对于这个需求不可行。
或者利用sqlserver的作业,设置每天去执行。然后判断哪些记录到了触发时间,可是这个触发时间和下一个触发时间又不好计算。
如果有好的思路或者办法,请不吝赐教
spring 定时器
#24
spring 定时器
不过貌似记得spring不是java的框架么?
#25
貌似有个是波斯小妖,其实有个通用参考的,就是技术区这边分不是很高……
.NET技术分已经超过我了
#26
考虑到资源问题,还是不在后台写定时了。就写一个代理作业,设置为每天某个时间点去执行~
你的两个思路一个是记录上次处理时间,另一个是计算下次处理时间,都不错。
接下来我要研究的就是sqlserver里面的时间算法咯
毕竟12个月的每个月天数都不一样呢
简单的办法就是在C#算出时间再传回去. 遇到30直接AddMonths(1)
#27
简单的办法就是在C#算出时间再传回去. 遇到30直接AddMonths(1)
这样就要在程序里去定时扫描了~
#28
我也想这样呢~ 简单的办法就是在C#算出时间再传回去. 遇到30直接AddMonths(1)
这样就要在程序里去定时扫描了~
程序定时扫描貌似比数据库里要容易点
#29
自己写个windows服务来执行。
或者用现成的:Quartz.NET
或者用现成的:Quartz.NET
#30
程序定时扫描貌似比数据库里要容易点
#31
自己写个windows服务来执行。
或者用现成的:Quartz.NET
晚上回去就研究~
ps:这个头像怎么会动的? 我也试过gif的,可是不会动呀
#32
#33
这个需求我觉得可以和客户沟通变通下,不要从技术上整死!
#34
这个需求我觉得可以和客户沟通变通下,不要从技术上整死!
不想再去设置WindowsTask或者是sqlserver代理作业~
#35
来学习一下大神们的思路
都没用过,都需要去研究~
自己写个windows服务来执行。
或者用现成的:Quartz.NET
晚上回去就研究~
ps:这个头像怎么会动的? 我也试过gif的,可是不会动呀
#36
我的解决方案:
第一步 定义好任务类型:
单次执行 type=1
每周执行 type=2
每月执行 type=3
每种类型 都要有个时间点,告诉程序什么时候发布.
第二步 查询当天需要执行的任务:
每天 0 点的时候 根据这三种任务找出当天需要执行的任务
若当天有新任务发布,则重新查找一次.
第三步 循环任务列表发布任务:
然后就是弄个循环 可以是每1分钟一次或者每5分钟一次
看是否达到发布任务的时间
第一步 定义好任务类型:
单次执行 type=1
每周执行 type=2
每月执行 type=3
每种类型 都要有个时间点,告诉程序什么时候发布.
第二步 查询当天需要执行的任务:
每天 0 点的时候 根据这三种任务找出当天需要执行的任务
若当天有新任务发布,则重新查找一次.
第三步 循环任务列表发布任务:
然后就是弄个循环 可以是每1分钟一次或者每5分钟一次
看是否达到发布任务的时间
#37
一种方法是开发一个windows服务,用timer定时调用“待分配任务查询及插入操作”
另一种方法是,利用数据库的定时任务,比如:oracle的JOB 、 Sqlserver的JOB,调用存储过程,执行“待分配任务查询及插入操作”
这里需要注意的是执行周期要尽可能的小,至少小于客户允许的运行周期的一半。
另:加入用户新增任务比较频繁,随着时间推移任务表记录会比较大,你可以考虑将任务表拆分成两个。第一个表存放尚未完成任务记录;第二个表存放已完成任务记录
另一种方法是,利用数据库的定时任务,比如:oracle的JOB 、 Sqlserver的JOB,调用存储过程,执行“待分配任务查询及插入操作”
这里需要注意的是执行周期要尽可能的小,至少小于客户允许的运行周期的一半。
另:加入用户新增任务比较频繁,随着时间推移任务表记录会比较大,你可以考虑将任务表拆分成两个。第一个表存放尚未完成任务记录;第二个表存放已完成任务记录
#38
每天任务好说,每周和每月的,难点在于确定是否到达任务发布时间,并且计算下一次发布时间。
#39
一种方法是开发一个windows服务,用timer定时调用“待分配任务查询及插入操作”
另一种方法是,利用数据库的定时任务,比如:oracle的JOB 、 Sqlserver的JOB,调用存储过程,执行“待分配任务查询及插入操作”
这里需要注意的是执行周期要尽可能的小,至少小于客户允许的运行周期的一半。
另:加入用户新增任务比较频繁,随着时间推移任务表记录会比较大,你可以考虑将任务表拆分成两个。第一个表存放尚未完成任务记录;第二个表存放已完成任务记录
嗯,A表只管存放制定的任务,B表用来记录触发的任务和完成的状态。
我也想利用现成的东西,现在用户是想自己去页面上设置维护任务触发周期和具体的时间点。
#40
可自己单独写个程序呀!即时判断系统时间跟数据库存储时间在执行操作就好了。。
#41
女的,上照片就有一大波狼,过来帮你了
#42
参考Sql Server 2005 管理->维护计划
#43
1分钟,5分钟也太频繁了吧~
每天任务好说,每周和每月的,难点在于确定是否到达任务发布时间,并且计算下一次发布时间。
每1分钟 一次 不会很频繁的, 你可以自己做的测试
比如当天有1000个任务要发布,你每一分钟 执行一次
for int i=0;i<1000;i++
这个有什么压力呢
至于第二个问题 你不需要去确认 每周和每月这样任务类型的下一个执行时间,
因为你在定制任务的时候 肯定要有个字段 来存的 比如每周的 为 星期三 星期五 这样
每月的 就存 5号 10号 这样的
你在查询当天需要发布的任务的时候 是需要根据任务类型 分开执行sql的
你要对单次, 每周, 每月 三种类型 分别动态创建 当天的三个sql语句 ,这个语句 也不是很复杂,就是根据当天
计算出 是当月的第几天 ,本周的星期几 然后拼接一下sql就出来了
#44
#45
1分钟,5分钟也太频繁了吧~
每天任务好说,每周和每月的,难点在于确定是否到达任务发布时间,并且计算下一次发布时间。
还有一种 就是间隔天数是由客户自己定义的 比如 每3天执行一次
这种也很好处理. 我们将他看成是单次执行的,只是在发布任务时去修改一下下次发布的日期,我想这个很容易吧..
#46
Sql Server 2005 打个sp2补丁
#47
Sql Server 2005 打个sp2补丁
客户不想在sqlserver里面或者WindowsTask里面去维护这个触发周期和具体时间,他想在页面上设置呢~
#48
我们用的是2008~
Sql Server 2005 打个sp2补丁
客户不想在sqlserver里面或者WindowsTask里面去维护这个触发周期和具体时间,他想在页面上设置呢~
那只能做服务了,只有服务组件才能实现离线自动触发
#49
那只能做服务了,只有服务组件才能实现离线自动触发
多谢啦~
#50
你可以看看quartz的资料,或许能够帮到你;
quartz中的调度器、任务和触发器可以处理你提到的那些东西。
quartz中的调度器、任务和触发器可以处理你提到的那些东西。