这段时间在寻找一个简单的队列服务,初次看到HTTPSQS时,欢喜不已。它简单、易用,官方提供PHP SDK,还是国人开发的开源软件,貌似100%符合需求。
于是赶紧下载、安装、试用。
一开始编译不通过,报错信息说是找不到libevent, 打开HTTPSQS的Makefile一看,顿时被吓尿了。
CFLAGS=-Wl,-rpath,/usr/local/libevent-2.0.12-stable/lib/:/usr/local/tokyocabinet-1.4.47/lib/ -L/usr/local/libevent-2.0.12-stable/lib/ -levent -L/usr/local/tokyocabinet-1.4.47/lib/ -ltokyocabinet -I/usr/local/libevent-2.0.12-stable/include/ -I/usr/local/tokyocabinet-1.4.47/include/ -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g
看来如果不按照其安装文档的步骤先安装好libevent-2.0.12-stable和tokyocabinet-1.4.47(不能是其他版本,目录也要完全一致!!!),是根本无法编译通过的。假若不幸有其他包依赖了不同版本的libevent或者是tokyocabinet,就要悲催了。
嗯,这只是一个小小的Bug,况且暂时没有其他服务使用这两个包,重新装上面的两个包,继续。
根据文档说明,安装完成,起了服务,然后使用其官方提供的PHP SDK,开始测试业务。
悲剧再一次降临了,所谓官方提供的PHP SDK里各种报错。变量未定义就到处用,变量的定义和初始化放在if语句里(如果if语句条件不满足,这个变量根本得不到初始化),在使用的地方不做应有的判断,直接使用。这种低级错误比比皆是,花了半个多小时把这些bug都修复后,我内心早已是万马奔腾。虽说PHP是门不太严谨的语言,但是代码怎能写得如此随意?我甚至怀疑这个官方推荐使用的SDK代码是否经过测试。
前后折腾了2-3个小时,最后还是决定换用其他队列服务。如此不严谨的开源,敢用么?