Linux命令行排队系统

时间:2015-02-03 10:09:02

标签: linux multithreading web-services shell openoffice.org

我正在运行一个Web服务,在Ubuntu服务器上使用OpenOffice将ODT文档转换为PDF。

可悲的是,当同时发出多于1个请求时,OpenOffice会偶尔窒息(转换PDF需要大约500-1000毫秒)。这是一个真正的威胁,因为我的网络服务是多线程的,而且工作大多是分批发布的。

我正在寻找的是一种将转换任务从我的webservice转移到一个中间进程的方法,该进程将所有请求排队并将它们逐个简化为OpenOffice。

但是,有时我希望能够发出立即处理的高优先级转换(在当前的处理之后,如果忙),并让webservice等待(阻止)。这似乎是一个棘手的补充,使大多数简单的调度技术过时了。

1 个答案:

答案 0 :(得分:1)

您之后的一些或其他消息/工作队列系统。 我使用的最简单的工作排队系统之一,也支持优先级排序,是beanstalkd

您的服务器上将运行一个进程,当它从Beanstalkd收到工作请求时将运行您的转换过程,并且您将让您的Web应用程序将工作请求推送到beanstalkd并提供相关信息。

DigitalOcean的人们在这里写了一篇非常好的介绍: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-beanstalkd-work-queue-on-a-vps