有谁知道你可以在redis中存储的最大值大小是多少?我想将redis用作celery的消息队列来存储一些需要由另一台服务器上的worker处理的小文档,我想确保文档不会太大.
我找到了一个引用1GB的页面,但当我按照页面上的链接获取该答案的链接时,链接无效了.链接在这里:
http://news.ycombinator.com/item?id=1182005
谢谢,肯
我有一个python应用程序,我想在后台开始做更多工作,以便它变得更加繁忙,因为它变得更加繁忙.在过去,我使用Celery来完成正常的后台任务,这一点运作良好.
这个应用程序和我过去做过的其他应用程序之间的唯一区别是我需要保证这些消息得到处理,它们不会丢失.
对于这个应用程序,我不太关心我的消息队列的速度,我首先需要可靠性和耐用性以及formost.为了安全起见,我希望有两个队列服务器,两个都在不同的数据中心,以防出现问题,一个是另一个的备份.
看看Celery看起来它支持一堆不同的后端,有些后端具有更多功能.两个最流行的看起来像redis和RabbitMQ所以我花了一些时间来进一步检查它们.
RabbitMQ: 支持持久队列和群集,但是它们今天进行群集的方式的问题是,如果丢失群集中的节点,则该节点中的所有消息都将不可用,直到您将该节点重新联机为止.它不会复制群集中不同节点之间的消息,只是复制有关消息的元数据,然后返回到原始节点以获取消息,如果节点未运行,则为SOL Not理想.
他们建议解决这个问题的方法是设置第二台服务器并使用DRBD复制文件系统,然后运行pacemaker之类的东西,以便在需要时将客户端切换到备份服务器.这似乎很复杂,不确定是否有更好的方法.谁知道更好的方法?
Redis: 支持一个读取从站,这将允许我在紧急情况下备份,但它不支持主 - 主设置,我不确定它是否处理主站和从站之间的主动故障转移.它没有RabbitMQ那样的功能,但看起来更容易设置和维护.
问题:
设置芹菜的最佳方法是什么,以保证消息处理.
有没有人这样做过?如果是这样,会分享您的所作所为吗?
我需要做以下事情,我想知道是否有人做过类似的事情,如果有的话他们做了什么.
我需要编写一个程序来处理不同客户端的传入电子邮件,处理它们,然后根据电子邮件地址,做一些事情(添加到数据库,回复等).
使这更具挑战性的是电子邮件地址不是静态的,而是动态的.例如.电子邮件将是这样的. dynamic-email1@dynamic-subdomain1.domain.com.电子邮件按客户端使用动态子域进行分组,在此示例中,它将是"dynamic-subdomain1".客户端将拥有自己的子域,并为其分配.每个客户端都可以在其子域下创建自己的电子邮件地址,并为该电子邮件分配事件.这些电子邮件地址和子域名可以随时更改,添加新邮件,删除旧邮件等.
因此,例如,如果收到电子邮件"dynamic-email1@dynamic-subdomain1.domain.com"的电子邮件,那么我需要在数据库中查找以找出哪个客户端被分配了"dynamic-subdomain1"子域,然后查看哪个事件映射到'dynamic-email1'的电子邮件地址,然后执行该事件.我已经进行了事件处理,我只是不确定如何将电子邮件地址映射到事件.
由于电子邮件地址是动态的,因此使用基于文件的配置文件来处理这将是一件非常痛苦的事情,而在数据库中查找会更好.我做了一些研究,发现一些项目做了类似但不完全相同的事情.我找到的最接近的是Zed Shaw的Lamson项目:http://lamsonproject.org
更多背景:
问题:
谢谢你的帮助.
更新:我对谷歌应用程序引擎建议做了一些更多的研究,它可能会工作,但我需要更改太多东西,它会添加太多的移动部件.我还需要一个捕获所有电子邮件转发器,谁知道任何好的便宜的?我更喜欢部署在处理所有电子邮件的系统上.看起来人们在端口25上使用了postfix监听并将请求转发给lamson.这似乎是合理的,我将试一试,看看它是怎么回事.我会用我的结果更新.
更新2:我做了更多的研究,我发现有几个网站为我做了类似的事情,所以接下来我会看看它们.
我正在寻找一个好的python模块来生成pdf417条形码.有人用过他们喜欢的吗?
理想情况下,我希望有一个尽可能少的依赖,一个在Linux和MacOSX上运行.
我Account在Django中有一个带有interest_rate属性的类(对应account.interest_rate于我的数据库).这是以下声明interest_rate:
interest_rate = models.FloatField(null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
如果我做这样的事情,它的工作原理:
account = Account()
account.interest_rate = 5
account.save()
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,它不起作用:
account = Account()
account.interest_rate = None
account.save()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Traceback (most recent call last):
File "./import.py", line 18, in <module>
cProfile.run('g.process()', 'prof')
File "/usr/lib/python2.6/cProfile.py", line 29, in run
prof = prof.run(statement)
File "/usr/lib/python2.6/cProfile.py", line 135, in run
return self.runctx(cmd, dict, dict)
File "/usr/lib/python2.6/cProfile.py", line 140, in runctx
exec cmd in globals, locals
File "<string>", line 1, in <module>
File …Run Code Online (Sandbox Code Playgroud) 目前我在Django上有一个网站.但我打算运行更多的Django网站.
所以我想知道我是否需要celeryd为每个新网站运行或者一个就足够了.
我通过主管运行`celeryd守护进程
我需要一个工具来封装标准容器中的异构有效负载,并在任何具有隔离和可重复性保证的服务器上运行它们.
Docker何时推出?