跨多种环境部署 Gearman
2010-10-09 08:13:21 来源:WEB开发网有助于这些情况的一个要素是,与 memcached 组合使用 Gearman 的处理,以允许您提交数据,解析和处理数据,然后自动更新该信息的高速缓存版本。
在博客或其他内容管理系统中,可以使用该方式来允许更新和信息的即时发布,方法是更新内容的 memcached 版本并在后台更新数据库,或者更新数据库并在写操作完成后马上更新 memcached 客户端版本以用于显示。通过减少同步写操作的次数,两种方案都有助于减少向数据库写入内容,同时提高前端应用程序的响应性。
在 清单 8 和 清单 9 中客户机和工人脚本的修改版本中,可以看到一个使用 memcached 的例子。客户机把要被计数的字符串写入 memcached,工人使用客户机提供的 ID 读取字符串,统计单词数量,然后将信息写回 memcached。本例中使用了一个硬编码的 ID,但是您也可以使用来自数据库的 ID 或 UUID。
清单 8. 基于 memcached 的客户机
use Gearman::Client;
use Cache::Memcached;
# Set up memcached
my $cache = new Cache::Memcached {
'servers' => [
'192.168.0.2:11211',
],
};
# Set up Gearman
my $client = Gearman::Client->new;
$client->job_servers('192.168.0.2:4730');
#
# Obtain the information you want to process
# and generate a unique key
my $id = 9334;
# Write some metadata
$cache->set(sprintf('doc-%d-srctxt',$id),
'The quick brown fox jumps over the lazy dog');
my $result = $client->dispatch_background('wordcount',$id);
更多精彩
赞助商链接