4

我一直在尝试使用 gearman 的持久工作队列。当我尝试使用 libdrizzle 时-

gearmand -q libdrizzle --libdrizzle-host=127.0.0.1 --libdrizzle-user=gearman --libdrizzle-password=secret --libdrizzle-db=some_db --libdrizzle-table=gearman_queue --libdrizzle-mysql

它给了我这样的错误-

gearmand: unknown option libdrizzle-host

还有一件奇怪的事情是,当我这样做时,man gearmand它没有 libdrizzle 选项。我应该怎么办?我想要mysql中的持久队列。我曾尝试使用gearman_udf_mysql,但它也没有奏效。我已经发布了问题。请参阅mysql 在哪里保存 gearman mysql udf 文件的路径?

4

1 回答 1

0

Gearman 必须使用 libdrizzle/mysql 支持编译。gearmand --help您可以通过运行命令或在旧版本上检查它是否已编译man gearmand

如果 libdrizzle/mysql 支持可用,您将在帮助中看到 Drizzle/Mysql 选项。如果它不存在,则需要重新编译 gearmand。以下是在 Ubuntu 12.04 LTS 上安装 Gearman 1.1.12 的命令(在干净的 Vagrant Precision64 机器上测试):

vagrant@precise64:~$ sudo apt-get update
vagrant@precise64:~$ sudo apt-get install libboost-all-dev gperf libevent-dev uuid-dev libmysqld-dev
vagrant@precise64:~$ wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz
vagrant@precise64:~$ tar zxvf gearmand-1.1.12.tar.gz
vagrant@precise64:~$ cd gearmand-1.1.12/
vagrant@precise64:~/gearmand-1.1.12$ ./configure

此时,在./configure输出的末尾查找以下行,这表明已安装 Mysql 支持:

* Building with libdrizzle   yes
* Building with libmysql     yes

然后继续安装:

vagrant@precise64:~/gearmand-1.1.12$ make
vagrant@precise64:~/gearmand-1.1.12$ sudo make install

Gearmand 现在配置了 libdrizzle 并将作业存储在 Mysql 数据库中。

于 2015-09-07T03:07:09.410 回答