我一直在尝试使用齿轮手的持久作业队列。当我尝试使用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
,但它也没有用。我发布了这个问题。见Where does mysql save the path for gearman mysql udf files?
答案 0 :(得分:0)
必须使用libdrizzle / mysql支持编译Gearman。您可以通过运行命令gearmand --help
或旧版本man gearmand
来检查它是否已编译。
如果libdrizzle / mysql支持可用,您将在帮助中看到Drizzle / Mysql选项。如果不存在,则需要重新编译。以下是在Ubuntu 12.04 LTS上安装Gearman 1.1.12的命令(在一个干净的Vagrant exact64盒子上测试):
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数据库中。