如何在vb.net中使用Windows Form Application实现调度程序



我正在在vb.net中开发的Windows应用程序上工作。该应用程序包含多个分析测试。当用户单击特定测试时,将执行加密的SQL查询,并将相应的输出粘贴到Excel中。

现在,要求是自动安排此任务,用户将指定日期和时间,在该特定时间测试应执行。另外,SQL查询以加密格式存储以进行安全目的,因此我不能使用SSIS软件包或SQL作业代理来安排任务。

在此特定方案中可以使用哪些可能的方法/解决方法来实现.NET Windows应用程序的调度程序?

好吧,我会尝试解释我们使用的方法。我们有一个Web UI,一个数据库和2个Windows服务,一种用于更新时间表信息的一种,以及负责导出到Excel的一个。

数据库

一张可以存储我们的查询以及他的时间表信息的表。一张用于存储所有出口的表,以便我们保留历史记录。

Web UI

通过WebInterface,我们可以存储需要按计划自动执行的查询,每小时,每天有些,每周有些,每月有些。在接口上,用户可以为时间表做出他的配置。

保存查询时,我们立即通过自行编写来计算此查询的nextruntimeSQL功能并将此值存储在数据库中。每当记录发生更新时,请更改或安排信息更改,我们更新了最后模拟的字段。

服务

我们的第一份服务读取了所有信息,其中nextruntime的字段不为空。我们将这些信息保存在对象列表中。每5分钟,我们检查该导出是否有更改,因为查询可以更改或时间表信息已更新。如果a找到更新的记录,我们将在对象列表中更新此信息。在相同的服务中,我们每30秒循环一次,然后查看Nextruntime是否等于实际的系统日期时间。如果是这样我们将记录添加到具有一定状态的第二个表中,因此第二服务知道需要处理哪些记录,并且我们还保持增量序列编号,因此它按顺序导出。

我们的第二次服务对第二个表进行了调查,并负责执行查询,将结果导出为Excel,并且完成后更新基于时间表信息,第一个表中的Nextruntime字段。用于创建Excel文件,我们使用了OpenXML库。

我希望您有点清楚。

最新更新