1

用例:

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

问题:

gearmand 是否可以在没有持久性的情况下工作(MySQL)并稍后赶上?

4

1 回答 1

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 个。
  • 齿轮输出:

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

  • PHP脚本输出:

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

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

于 2013-06-25T10:58:03.037 回答