首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python队列

Python队列
EN

Stack Overflow用户
提问于 2011-10-02 20:53:18
回答 1查看 375关注 0票数 1

我正在用Python编写一个相当简单的CGI。我将把它放到Django中,等等。总体设置是相当标准的服务器端(即计算是在服务器上完成的):

  1. 用户上传数据文件并单击“运行”按钮。
  2. 服务器使用大量的RAM和处理器功能,在后台并行地分叉作业。~5-10分钟后(平均用例),程序终止,创建了一个输出文件和一些.png图形文件。
  3. 服务器显示带有数字和一些摘要文本的网页。

我不认为会有成百上千的人同时使用它;但是,因为正在进行的计算需要相当大的内存和处理器能力(每个实例使用Python的Pool进行最密集的任务)。

我想知道你是否知道使用排队系统是否值得。我遇到了一个叫做beanstalkc的Python模块,但是页面上说它是一个“内存中”的排队系统。

在这种情况下,“内存”意味着什么?我担心内存,而不仅仅是CPU时间,所以我想确保一次只运行一个作业(或者在RAM中运行,不管它是否接收CPU时间)。

另外,我还想决定

  • 结果页(由CGI提供)应该告诉您它在队列中的位置(直到它运行,然后显示实际的结果页)

  • 用户应将其电子邮件地址提交给CGI,CGI将在结果页面完成后将链接发送给他们。

对于这类问题,您认为轻型交通CGI的合适设计方法是什么?我们非常感谢你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-03 01:18:41

当然要使用芹菜。您可以运行amqp服务器,或者我认为您可以将数据库合并为消息的队列。它允许您在后台运行任务,如果需要,它可以使用多台工作机器进行处理。如果您使用姜戈-芹菜,它还可以执行基于数据库的cron作业。

在后台运行任务就像这样简单:

代码语言:javascript
复制
@task
def add(x, y):
    return x + y

在我的一个项目中,它将工作分布在4台机器上,并运行伟大的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7629147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档