Go 语言的 Gearman API

学习 Go 已经有一段时间了,关于《学习Go语言》的翻译进度一如既往的像之前一样缓慢。每当翻译到一处,看到 Go 语言那精妙的设计的时候,就会忍不住想写点什么。好吧,其实我之前的计划是写一个自己用的proxy,不过还是算了吧,原因大家都懂。轮子造太多,没意思。 在整理一些之前的技术架构和思考新的架构的过程中,一次又一次提高了 Gearman 在系统中的重要性。虽然基于“新项目用老技术,老项目用新技术”的原则,并不打算在新的项目中使用 Golang。不过,总会有一天新项目要变成老项目吧?总会有一天,老项目需要做一些调整吧?理由牵强了点,但总是给自己找到了一个做的理由。 于是就有了这个:http://bitbucket.org/mikespook/gearman-go

Web编程异步模型的 Gearman 实现(残)

写了 PHP 原生的二段式异步模型的实现,我就想着用 Gearman 实现一个 callback 方式的异步。还没准备好怎么去写,就看到了靓文一篇《Gearman 心得》。 看过之后,甚感压力:好文!!于是,弃笔不写,洗洗睡罢了…… 补充一下,在“心得”文中仅仅说明了不阻塞的后台作业。对于异步获取数据并未说明。所以我这里罗嗦一下…… worker 如果用 php 来实现,并且不用《Web编程异步模型的PHP 原生实现》中的异步方式,是无法实现 php 的 client 的异步的。比较好的实现方式是 worker 不使用 php,用 python、perl 或者 c,实现一个线程池来执行 job。当然,私下觉得用 stackless python 可能是更好的选择。 2010年07月18日补充: 好吧,终于有人撰文,正好可以补充完整这个异步思路: 淺談coroutine與gevent 就他了,太棒了!