PHP GearmanClient
GearmanClient客户端库会自动天生Unique,因此纵然完备相同的要求内容,Job Server也会吸收处理,比如下面两个客户真个调用,那么test行列步队中的任务数为2# 测试时先停滞worker中函数test的处理client1->do(\"大众test\"大众, \"大众test\"大众);client2->do(\"大众test\公众, \"大众test\"大众);如果,完备相同的要求,哀求Job Server只处理一次,那么可以显示的带上Unique,比如下面两个客户真个调用,这种情形,test2行列步队中只会有一个任务(纵然要求内容不同),但是当这个job被worker成功处理后,client1和client2都会吸收到精确的处理结果
# 测试时先停滞worker中函数test2的处理client1->do(\"大众test2\"大众, \公众test\"大众, \公众unique\公众);client2->do(\"大众test2\"大众, \"大众test\公众, \"大众unique\公众);client3->do(\"大众test2\公众, \公众testtest\"大众, \"大众unique\公众);
Gearman Http Call
# 要求内容相同session1# curl -XGET http://localhost:4830/test?testsession2# curl -XGET http://localhost:4830/test?test# 要求内容不同session1# curl -XGET http://localhost:4830/test?testsession2# curl -XGET http://localhost:4830/test?testtest如果想显示的区分不同的任务,可以在http header中加上:
X-Gearman-Unique: your_unique_id这样,不管要求内容是否相同,只要header中的unique值不同,则任务是两个要求,否则就认为是一个要求 同样,纵然job server对相同unique的任务当做一个任务处理,当任务被成功处理后,两个客户端同样都会收到精确的结果
