如何实现一个定时任务来对数据库中的数据进行 *** 作

如何实现一个定时任务来对数据库中的数据进行 *** 作,第1张

由于公司的新接得项目要实现一批数据的同步,通过外围厂商提供的一系列各个系统的webervices接口定时将数据同步到我们开发的共享平台上,由于厂商系统的数据是不断在变化以及各系统闲忙时的特点,所以定时同步任务的执行必须在时间上能够动态配置。因此,我们需要动态的从数据库中获取配置信息,以改变各个定时间的执行规则,废话不说了,上代码:(我利用的是ssh框架直接写的,框架搭建不再叙述)

1创建数据表(我用的是MySQL)

[sql] view plain copy

DROP TABLE IF EXISTS `t_wsdoc`;

CREATE TABLE `t_wsdoc` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`triggername` varchar(50) NOT NULL,

`jobdetailname` varchar(50) N

简单实现的话,就启动一个线程,用一个死循环扩起来,然后用sleep去延时,取出的变量可以放在一个全局变量里,通过<%=Threaddbnum%>显示;也可以以写入字符文件,在页面上include就行,

public static int dbnum;

public xxMethod(){

while(true) {

dbnum = selectFromDB();

Threadsleep(1601000) ; //1ms 60 1000 = 1分钟

}

}

Anllen,这样做是不科学的,如果是定时发送你可以考虑使用sql server中的计划,他可以定义执行某些任务,同时在sql server 2005以后还加入机器空闲时执行等等,而且还是可在失败时重试(重试次数自己设置),还可以对部分成功时进行记录等等。

如果是要求立即执行或是其他不能指执行条件时,可以考虑sql server 2005之后的server broker,这种机制较为安全。同时因为使用queue的原因,使消息只到达一次而不会重复,解决实际工作中的数据库与程序间的异步传输问题。

既然有这么多好的方案为什么还考虑重复地循环地查询数据库呢——你的数据库效率被拉的很慢的,别忘记了还是许多锁机制,会导致SQL server不再及时响应外部请求的!

参照语法

创建事件(CREATE EVENT)语法:

CREATE EVENT [IF NOT EXISTS] event_name

ON SCHEDULE schedule

[ON COMPLETION [NOT] PRESERVE]

[ENABLE | DISABLE]

[COMMENT 'comment']

DO sql_statement;

schedule:

AT TIMESTAMP [+ INTERVAL INTERVAL]

| EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]

INTERVAL:

quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

DO sql_statement

这里可以是insert语句,也可以是调用一个存储过程。

以上就是关于如何实现一个定时任务来对数据库中的数据进行 *** 作全部的内容,包括:如何实现一个定时任务来对数据库中的数据进行 *** 作、如何在web服务定时查询数据库,并返回更新的值、C# 定时查询SQLServer数据库,并且将查询到的数据循环发送。请给个代码案例谢谢~ 网站的引用也可以。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9739764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存