Linux 命令行排队系统
Linux command line queueing system
我是 运行 在 Ubuntu 服务器上使用 OpenOffice 将 ODT 文档转换为 PDF 的网络服务。
遗憾的是,当同时发出超过 1 个请求时,OpenOffice 偶尔会卡住(转换 PDF 大约需要 500-1000 毫秒)。这是一个真正的威胁,因为我的网络服务是多线程的,而且作业大多是分批发布的。
我正在寻找的是一种将转换任务从我的 Web 服务移交给中间进程的方法,该中间进程对所有请求进行排队并将它们逐一简化到 OpenOffice。
但是,有时我希望能够发出立即处理的高优先级转换(如果繁忙,则在当前转换之后)并让 Web 服务等待(阻止)该转换。这似乎是一个棘手的添加,它使大多数简单的调度技术都过时了。
您要的是某个或其他 message/work 队列系统。
beanstalkd.
是我使用过的最简单的工作排队系统之一,它也支持优先排序
您的服务器上会有一个进程 运行ning,当它收到来自 beanstalkd 的工作请求时,它将 运行 您的转换进程,并且您将让您的 Web 应用程序推送一个工作向 beanstalkd 请求相关信息。
DigitalOcean 的人在这里写了一篇非常好的介绍:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-beanstalkd-work-queue-on-a-vps
我是 运行 在 Ubuntu 服务器上使用 OpenOffice 将 ODT 文档转换为 PDF 的网络服务。
遗憾的是,当同时发出超过 1 个请求时,OpenOffice 偶尔会卡住(转换 PDF 大约需要 500-1000 毫秒)。这是一个真正的威胁,因为我的网络服务是多线程的,而且作业大多是分批发布的。
我正在寻找的是一种将转换任务从我的 Web 服务移交给中间进程的方法,该中间进程对所有请求进行排队并将它们逐一简化到 OpenOffice。
但是,有时我希望能够发出立即处理的高优先级转换(如果繁忙,则在当前转换之后)并让 Web 服务等待(阻止)该转换。这似乎是一个棘手的添加,它使大多数简单的调度技术都过时了。
您要的是某个或其他 message/work 队列系统。 beanstalkd.
是我使用过的最简单的工作排队系统之一,它也支持优先排序您的服务器上会有一个进程 运行ning,当它收到来自 beanstalkd 的工作请求时,它将 运行 您的转换进程,并且您将让您的 Web 应用程序推送一个工作向 beanstalkd 请求相关信息。
DigitalOcean 的人在这里写了一篇非常好的介绍: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-beanstalkd-work-queue-on-a-vps