当前位置 : 主页 > 大数据 > 区块链 >

gwt – 具有RPC接口的作业队列管理器

来源:互联网 收集:自由互联 发布时间:2021-06-22
我需要一个可以通过Internet控制的工作队列管理器。它应该能够执行和停止进程,检查它们的状态(理想情况下,当进程退出时注意并执行一些代码),响应命令并且还能够向服务器报告。
我需要一个可以通过Internet控制的工作队列管理器。它应该能够执行和停止进程,检查它们的状态(理想情况下,当进程退出时注意并执行一些代码),响应命令并且还能够向服务器报告。

背景:我有一个GWT应用程序,允许创建在云实例(目前为EC2)上执行的作业。我想将一个“作业包”(一个进程操作的数据)推送到S3,启动一个Linux EC2实例(或使用一个已经在运行的实例),并告诉实例上的一个作业管理器执行该作业(可能平行于其他工作)。然后,它应该从S3拉出“作业包”,运行一个对该数据进行操作的进程,然后通过一些信息(例如退出代码,stdout,stderr)向服务器报告运行我的GWT应用程序的服务器部分。如果我必须写stdour / err从进程的文件,并读取该文件,也没关系。

我真的希望经理能够“关闭”它运行的进程,这意味着我想避免使用像JDK这样的Runtime.exec。如果我使用Quartz就好像我必须这样做。

我在两个方向的电话都是异步的。只要能够轻松地在我的GWT服务器端构建一个接口,就可以使用任何合理的呼叫技术(例如通过SSL对servlet的HTTP请求会很好,微不足道)。

工作经理不需要一个非常复杂的排队系统。顺序或并行运行几个进程应该是罚款。确定过程在其生命周期中接收的计算时间将是多少(AFAIK,这可能是具有挑战性的)。

我还没有找到任何现有的软件,包括http://java-source.net/open-source/job-schedulers.我怀疑我可能需要在工作经理周围建立一个RPC接口(当然有认证等等);也许使用像Apache Commons Exec这样的东西。在这种情况下,我更喜欢Java或Python作为工作经理的一部分。

我很乐意听到关于前者或后一种情况的建议!

你的问题不是很清楚。

>如果你只想要一个工作队列,那么有一个(SQS,AMPQ,Redis等)
>如果您想要一个通用框架来运行作业和记录结果,请查看Rundeck
>如果您想要临时工作控制,只需使用tmux并通过SSH和/或CGI脚本将其脚本化。

但是真的,我不知道有没有一个“通用”组件将完全按照你想要的方式执行。只需启动您最喜欢的框架,并从您最喜欢的语言读取系统调用。如果您学习UNIX的理念,您可以从任何语言进行任何操作(运行进程,暂停/停止信号进程)。也许存储正在运行的作业的数据库等

网友评论