我有一个问题,这使我很难找到理想的解决方案,并且为了更好地解释它,我将在这里展示我的情况。
现在,这里是棘手的部分:
已经处理过的任务
服务器故障的原因。
一名 worker 应为
任何给定数量的客户。
我对通用数据库设计以及要使用的技术有一些疑问。
最初,我想到了使用几个 SQLite 数据库并将都加入服务器中,但我不知道如何按客户分组以生成作业报告。
我从未真正使用过以下任何一种技术: memcached , CouchDB , Hadoop 等等,但是我想知道其中的任何一种是否适合我的问题,如果可以,那么您为新手推荐的是像我这样的“分布式计算”(或者是并行的?)。 请记住,工作人员具有动态IP。
就像我之前说过的那样,我在通用数据库设计上也遇到了麻烦,部分原因是我还没有选择任何特定的R(D)DBMS,但是我遇到的一个问题与我选择的DBMS无关,到排队系统...。我应该预先计算特定作业的所有绝对时间戳,并设置大量的时间戳,以升序执行并将它们标记为完整,还是应该有一个更聪明的系统,例如“”当时间戳模数60 == 0->执行“。这个“聪明”系统的问题在于,某些作业将不会按的顺序执行,这是因为有些 worker 可能在等待其他 worker 重载而无所事事。 您有什么建议?
PS:我不确定此问题的标题和标签是否正确反射(reflect)了我的问题以及我想做的事情;如果没有,请进行相应的编辑。
感谢您的输入!
@timdev:
最佳答案
看来您即将重新创建Gearman。这是Gearman的简介:
您可以使用PHP编写客户端和后端工作程序代码。
关于您为Windows编译的Gearman Server的问题:我认为在为Windows预先构建的精巧软件包中不提供该工具。 Gearman仍然是一个相当年轻的项目,他们可能还没有成熟到可以为Windows生成可立即运行的发行版的程度。
Sun/MySQL员工Eric Day和Brian Aker于2009年7月在OSCON上为Gearman做了tutorial的演讲,但他们的幻灯片仅提及Linux软件包。
这是Perl CPAN Testers项目的链接,该链接表明Gearman-Server可以使用Microsoft C编译器(cl.exe
)在Win32上构建,并且可以通过测试:http://www.nntp.perl.org/group/perl.cpan.testers/2009/10/msg5521569.html但是我想您必须下载源代码并进行构建。你自己。