我想使用gearman作为webproject的队列系统。因此我尝试了齿轮手和齿轮手管,效果很好。但是知道,我问自己,如果工人,工作或服务器已经消失会发生什么(例如php错误或者原因可能是什么)。
我想知道系统是否是scalabel(例如通过NFS)。你有我的例子或我可以获得的经验吗?
谢谢大家,周末愉快...
菲尔
答案 0 :(得分:2)
如果服务器崩溃,您的客户端将无法连接任何内容。您如何处理这取决于您的应用程序。如果工作人员已经崩溃,并且您正在尝试运行同步任务,则客户端将等待工作人员可用,除非您提供了超时值。
如果执行异步任务且工人,齿轮工人将重新排列手头的任务。如果它抓住每个抓住它的工人,你可能会没有任何活跃的工人。 C版/ gearmand可以选择调整此行为:
-j [--job-retries] arg(= 0)运行作业的尝试次数 在作业服务器删除它之前。这个 有助于确保不好的工作 崩溃所有可用的工人。默认是 没有限制。
如果部署损坏或易碎的代码,无论您使用哪种系统,都会遇到问题。坏代码破坏了应用程序: - )
Gearman设置是可扩展的,但请记住,如果您使用持久性队列支持,则每个服务器需要才能拥有自己的后端。您不能跨服务器实例共享相同的数据库和表,因为只有在gearmand死亡且必须重新启动的情况下,持久性队列才会作为备份进行维护。如果需要,允许应用程序再次轻松地排队任务可能更有用。