python - 使用不同的配置运行同一脚本的两个不同实例
问题描述
我有一个简单的脚本,负责从外部 API 获取数据,我们称之为 connector.py。该脚本将一些参数作为输入,完成其工作,然后将其写入文件并返回输出。
我想实现一个调度程序,它将创建和管理该脚本的两个实例,每个实例都有自己的输入(不同的设置),并使它们以配置的间隔运行,并具有下一个约束:
- 输入:将连接器的参数从设置中通过标准输入通道传递给子进程(不是作为进程参数)
- 输出:将子流程的连接器输出通过标准输出通道传递给服务
- 我必须自己实现恒定循环周期(例如不使用调度程序)
为了实现这个目标processes?
,我应该使用什么机制threads?
,sub-process?
我主要是在努力理解如何处理不同连接器实例的标准输入/标准输出问题。任何建议都会受到重视。
解决方案
调度任务有两种可能性。
让你的脚本成为一个每次都会运行的工厂,直到有东西停止它。因此,您将有可能选择线程或进程(子进程使用进程)。这里稍微介绍一下线程和进程。(如果我使用这种方法,我会使用子流程)
https://www.backblaze.com/blog/whats-the-diff-programs-processes-and-threads/
但是,在您的情况下,我看不到使用线程或子进程的实用程序,因为您告诉我们您将使它们以配置的间隔运行。您可以将程序整合到您的程序中,以使它们单独运行。
对于任务调度,您还可以使用 cronjobs。它允许根据日期、重复、用户等执行命令。这里有一些关于如何设置 cronjob 的详细信息:
推荐阅读
- json - Go JSON 解析错误
- ajax - 带有自定义过滤器的 Ajax 分页器
- java - Java - 堆栈类找不到内存泄漏
- python - 如何在烧瓶中用不同的信息来闪现成功和危险。
- python - Pandas:将列转换为日期时间格式
- python - 一个表达式中的两个数值比较python
- javascript - 如何测试浏览器是否支持
- javascript - ReferenceError:未定义 sass - Sass.js
- java - nCipher (Thales HSM) - 插槽中没有卡
- html - 如何拆分网页并在一侧具有可点击的链接以及这些链接将在另一侧显示的内容