当mysql-database停机一段时间时,使用libdrizzle的gearmand是否正常工作?

时间:2013-06-21 13:22:17

标签: gearman drizzle libdrizzle

使用情况:

  • 使用libdrizzle作为持久层到mysql-database
  • ,gearmand完全可以运行
  • 毛毛雨连接崩溃(例如,在夜间备份期间,gearmand-database被锁定了几分钟,或者mysql服务器崩溃或网络问题到数据库服务器)。

问题:

当前的设备是否在没有持久性的情况下工作(MySQL)并且稍后赶上?

1 个答案:

答案 0 :(得分:2)

<强>答案

没有

<强>详情

  

/ usr / local / sbin / gearmand -q mysql --mysql-user user1 --mysql-password   pass1 --mysql-db gearmand

情景#1

情景:

  • 为gearman队列表启用READ锁定

结果:

  • 创建后台任务的脚本处于暂停状态。
  • 删除READ锁后,脚本将继续并成功创建所有5000个作业。
  • 注意:我刚刚测试了锁几秒钟。由于超时,脚本可能会崩溃。

情景#2

情景:

  • 停止整个mysql服务器实例(使用gearman队列)

结果:

  • 如果没有mysqld,则无法创建作业。
  • 创造了5000个工作岗位中的3974个工作岗位。
  • gearmand输出:

      

    mysql_stmt_prepare失败:无法通过连接到本地MySQL服务器   套接字X

  • PHP脚本输出:

      

    PHP警告:GearmanClient :: doBackground():   gearman_client_run_tasks:QUEUE_ERROR:QUEUE_ERROR

不幸的是,在我的测试场景中,如果mysql持久层不可用,则gearmand将停止工作。