gpt4 book ai didi

windows - 有关在Windows应用程序中可能替换批处理文件的问题?

转载 作者:可可西里 更新时间:2023-11-01 09:22:31 25 4
gpt4 key购买 nike

我有一个很大的Windows旧应用程序,由许多与数据库交互的可执行文件组成。
可执行文件有4个主要用途:

(a)解析并加载数据库中的文件

(b)转换文件(例如,对文件进行编码)。这也可以将文件分成许多部分。

(c)在数据库中执行某种复杂的更新

(d)产生文件

这些可执行文件由批处理文件调用,批处理文件根据其工作方式可以分为三种类型:

(1)等待条件,从某个外部路径获取文件,可能使用(b)进行转换,执行(c),发送有关 Activity 结果的通知,将记录写入数据库

(2)等待条件,执行一些(c),生成一个文件,用(b)进行转换,然后将其复制到一个或多个目标(本地文件,数据库,ftp),发送有关 Activity 结果的通知,将记录写入数据库。

(3)协调(a-b-c-d)可执行文件的其他复杂序列,发送有关 Activity 结果的通知,将记录写入数据库

批处理文件是Windows计算机上的普通BAT文件(可能会相互调用)。文件由调度程序启动。

问题是:

-在每个批处理文件中,大多数有关环境的信息(公用目录等)都是重复的,并且大多数类型(1)或(2)的文件都非常相似。

-批处理文件不容易针对测试环境进行配置,也不容易进行自动测试

-用于通知和等待启动条件的代码部分重复es(如果errorA调用b,如果错误b调用c,如果错误d调用e)。

-goto的使用

-您无法准确跟踪哪些批处理文件已过时以及哪些已定期


-要了解发送或接收的文件,您需要分别打开每个批次。

-它们对应用程序施加了设计约束,无法抽象出通用代码

-要实现水平功能(例如,具有默认的日志记录策略,计算每个作业的调用次数),需要在许多文件上编写(无法维护?)代码。

从积极的一面:

  • 批处理文件易于修改,因此,如果批处理由于某种原因而失败,则不会
    很难写一批使情况回到安全状态。
  • 他们已经过战斗测试。他们已经生产了很长时间

  • 我想出了以下解决方案:
  • 写一些Java库,在其中我提供了常用的功能和配置(用于通知事件的功能,用于传输文件的功能,用于等待条件的功能。
  • 编写一个Java“脚本引擎框架”命令行应用程序,该应用程序可以加载和执行任务类。 (任务类可以使用上述库中提供的功能。)
  • 脚本可以由用户根据需要在单独的jar中的类中提供。
  • 脚本可以通过注释
  • 自动记录
    脚本引擎
  • 可以要求脚本输出自身及其参数的描述
  • 将文件的产生与复制
  • 分开


    我决定使用Java,而不是脚本语言(PHP,Python),以便我可以受益于编译,而不必担心在公共(public)库中编写某些东西会触发“致命错误”,并且停止执行脚本。

    我觉得这将简单地执行大多数标准批处理文件(类型1和2),另一方面,我担心很难代表类型3的批处理。
    同样,我将进行自动部署,我担心的是,尽管编写不良的批处理文件可能会造成问题,但是在引擎本身中部署了一些错误代码(即使由于编译和测试而不太可能发生)或配置可能会产生更大的问题,影响所有脚本。

    请注意,系统应100%可靠,并且要执行的系统任务有截止日期和“时间窗口”。

    我的问题是:

    您认为批处理文件还可以吗?它们在这种情况下被广泛使用吗?

    您认为我的方向正确吗?有没有我没有考虑过的东西?

    有谁有更好的主意?

    您知道有什么可以帮助我的框架吗?

    您认为开发此系统以在将来具有更大的灵活性是值得的,还是我最好保留批次?

    请注意,任何要开发的新解决方案都将首先与现有系统集成,因此,例如,我无法重写所有内容以在应用程序服务器中工作。

    最佳答案

    我已经在一个非常相似的应用程序上工作,该应用程序有100多个调用OSQL的.cmd文件。我们遇到了许多同样的问题,以及错误处理不善的问题。在我看来,与编写一个在计划程序和批处理/脚本文件之间运行的框架相比,让计划程序执行所需的工作是一个更好的选择。在我看来,这种类型的系统需要老式的 Job Scheduler 。它调用您的可执行文件命令,处理错误,并传递您配置的参数。从ZenaJobScheduler有许多不同的选项。我建议选择一个具有良好GUI的显示器。

    关于windows - 有关在Windows应用程序中可能替换批处理文件的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1096834/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com