gearman 创建Mysql持久化队列的方式如下:

1. 登入mysql命令行,运行:

create database gearman;

2. 启动gearman,命令如下:

/usr/local/gearman/sbin/gearmand -p 4730 -L 0.0.0.0 --log-file=/tmp/gearmand-4730.log --pid-file=/tmp/gearmand-4730.pid -q MySQL --mysql-host=localhost --mysql-user=root --mysql-db=gearman --verbose DEBUG-d

具体的参数,根据自己的服务器状况去修改就行了。

3. 再次登入mysql命令行,执行:

use gearman;show tables;

就可以看到下面多了个“gearman_queue”的表。

这样,gearman就变成了持久化的方式。

=============================================================================

gearman用mysql持久化之后,其实会带来一些问题。

1. 每个任务都会写入数据库,这样会带来磁盘IO的损耗,并且gearman的性能瓶颈又多了一个可能,就是由数据库引起的性能问题。

2. mysql有个“wait_timeout”的参数,在mysql命令行中运行

show variables like "%timeout%";

可以看到wait_timeout的值,默认是28800。也就是说,如果一个mysql的连接,超过28800s没有任何响应,就会断开。

3. gearman持久化的方式,如果超过了mysql的wait_timeouts的时间没有任何响应,和数据库的连接就会被mysql断开,而且gearman目前是没有mysql重新连接的,结果就是,会导致如下错误,必须重启gearman才能重新正常工作。

gearman报错

ERROR 2014-04-01 02:10:02.897899 [ proc ] mysql_stmt_execute failed: -> libgearman-server/plugins/queue/mysql/queue.cc:357

ERROR 2014-04-01 02:10:02.897910 [ proc ] gearman_server_job_add gearman_server_run_command(QUEUE_ERROR) -> libgearman-server/server.cc:301

所以,gearman持久化方式带来的缺点显而易见,该方式下,要避免gearman对mysql连接超时断开,可以将mysql的wait_timeout参数改大。

或者,直接放弃用mysql的持久化方式。

gearman mysql_gearman mysql持久化相关推荐

  1. gearman mysql_gearman的持久化,以mysql的方式

    1.为什么要持久化? gearman的job server中的工作队列存储在内存中,一旦服务器有未处理的任务时重启或者宕机,那么这些任务就会丢失. 持久化存储队列可以允许添加后台任务,并将其存储在外部 ...

  2. gearman mysql_gearman + mysql方式实现持久化操作示例

    gearman + mysql方式实现持久化操作示例 发布时间:2020-09-04 03:20:08 来源:脚本之家 阅读:90 作者:怀素真 本文实例讲述了gearman+mysql方式实现持久化 ...

  3. gearman mysql_gearman+mysql实现持久化队列

    持久化队列是在0.6版本中新添的一项功能,允许将队列存放在drizzle或mysql中. 0.7版本允许将队列存放在memcached. 0.9版本可以将队列存放在sqlite3或postgresql ...

  4. gearman mysql_gearman mysql udf

    gearman安装 apt-get install gearman gearman-server libgearman-dev 配置bindip /etc/defalut/gearman-job-se ...

  5. gearman mysql持久化_gearman + mysql方式实现持久化操作示例

    本文实例讲述了gearman+mysql方式实现持久化操作.分享给大家供大家参考,具体如下: 1.为什么要持久化? gearman的job server中的工作队列存储在内存中,一旦服务器有未处理的任 ...

  6. 2.Spring Cloud Alibaba教程:Linux安装Nacos1.3.1以及配置MySQL持久化

    概述 官网给了几种方式,这边采用直接解压运行,这个最简单. 下载 打开下载地址:https://github.com/alibaba/nacos/releases,官方推荐的1.3.1,所以我们就选择 ...

  7. Gearman + Nodejs + MySQL UDF异步实现 MySQL 到 Redis 的数据同步

    目录 1, 环境 2, Redis简介 3, Gearman简介 4, MySQL - Redis配合使用方案 4, 软件安装 5, MySQL UDF + Trigger同步数据到Gearman 6 ...

  8. 通过Gearman实现MySQL到Redis的数据复制

    通过Gearman实现MySQL到Redis的数据复制 日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性使用 2.5 许可协议』进行许可. 对于变化频率非常快的数据来说,如 ...

  9. PHP的MySQL持久化连接

    2019独角兽企业重金招聘Python工程师标准>>> PHP的MySQL持久化连接,美好的目标,却拥有糟糕的口碑,往往令人敬而远之.这到底是为啥么.近距离观察后发现,这家伙也不容易 ...

最新文章

  1. 一位IT從業人員的心路歷程
  2. 贪便宜买了减价香蕉之后
  3. C++实现选择排序(附完整源码)
  4. URAL 1036 Lucky Tickets
  5. BitArray虽好,但请不要滥用,又一次线上内存暴增排查
  6. 无迹卡尔曼滤波器(UKF)
  7. 远程桌面提示RPC不可用
  8. linux su命令位置,Linux命令大全su详解
  9. 当他不再爱你的时候(男女生一定要看)
  10. 支持向量机原理(三)线性不可分支持向量机与核函数
  11. 简述RPL, DPL, CPL的区别与联系
  12. DirectX 9的安装与配置
  13. 新浪云SAE共享型数据库MySQL使用经验
  14. nxp的bluetooth驱动调试
  15. JavaScript的简单认识
  16. html后代选择器的语法,后代选择器 | Descendant selectors
  17. 在Linux安装Kafka监控系统EFAK
  18. 手把手教你自制U盘重装win10系统专业版(纯净版)+激活【图文教程】
  19. php 快速导出百万级数据到 csv 或者 excel 文件
  20. 声明一个Tree(树)类,有成员ages(树龄),成员函数grow(int years)用以对ages 加上years,showage( )用以显示tree对象的ages值。在主函数中定义Tree类对

热门文章

  1. 【Flutter】设计模式(更新)
  2. 简易的许愿墙效果实现
  3. IO流技术【Properties类介绍、文件切割与合并】
  4. Python 处理 PDF 的神器 -- PyMuPDF
  5. 导致股票回测接口回测效果差的原因有哪些?
  6. AX2012 table
  7. Spring中bean的注入方式
  8. pymysql安装过程
  9. Intellij idea将jsp项目到处war包,并上传到服务器
  10. 饥荒联机服务器启动文件副本,饥荒联机版一个存档一直启动服务器 | 手游网游页游攻略大全...