排队和调度长模拟

2024-05-15 10:40:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个Python模块来管理长基线模拟过程的执行。虽然到目前为止我已经取得了一些成功,但我还是想改进它,以便使它更适用于预期的,呃,用户

到目前为止,我的代码使用了systimesubprocess和包watchdog;它监视文件夹中的新运行文件,将这些文件放入FIFO队列中,并同时执行它们,直到达到预定义的限制。这是可行的,但有点笨重,动态管理这是不切实际的

我不是计算机科学家或软件工程师;这就是我请求帮助的原因。尽管如此,我有信心我将能够做(大部分)编码工作,但我想在以下方面得到一些指导:

  • 我所描述的一些概念的计算机科学名称是什么
  • 在python3.x中,有哪些包可以完成这些工作
  • 你会用什么方法来做这些事情
  • 您可以使用哪些数据结构来执行此操作

我很感激你能提供的任何帮助,当然,请告诉我是否有更好的StackExchange网站,我可以提交这个问题。提前谢谢


关于模拟的一些细节:

  • 完全基于Windows10
  • 三种或四种不同品种中的一种
  • 从命令行参照输入文件执行
  • 模拟要么立即失败,要么几乎立即失败,要么运行数小时、数天甚至数周
  • 典型的批处理多达数十个模拟
  • 模拟使用大量RAM和整个CPU

我还应该指出,根据模拟软件许可证的条款,我被明确禁止使用第三方云计算平台

下面是我需要模块做的:

  • 模拟自动调度
  • 同步模拟达到极限
  • 队列无限期运行
  • 队列可以动态添加到(新文件中的引用)
  • 关于正在运行和队列中的内容的反馈
  • 先进先出排队

还有一些来自用户的额外想法,关于拥有什么是好的:

  • 可以在多台计算机上调度模拟
  • 同时模拟极限可以动态改变
  • 优先顺序系统
  • 模拟可以提前终止
  • 如果模块崩溃,可以重新启动而不必重建队列
  • 一个基于浏览器的界面,可以在其中查看/管理队列

Tags: 模块文件代码用户文件夹软件time队列