青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

xiaoguozi's Blog
Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····

Recently I've come face-to-face with a significant processing task for a web application written in PHP.  I haven't worked with process control very much, so I started researching ways of distributing the calculations to multiple processes.  PHP offers several libraries for doing this (pcntl, POSIX), but it quickly became clear that if you're running Windows these libraries are not an option, and unfortunately at work I have a Windows machine.  After a lot more research, I came across Gearman.

Gearman is essentially a distributed processing framework, and seems to have community support for many programming languages.  It consists of two main components: the job server, and a Client and Worker API.  The Client and Worker API can be used in a wide variety of languages, but the job server is only available as a C library or a Perl library.  This makes it a bit tougher to get the server running on Windows, especially when you start running into some of the dependencies that it requires to build.  As well, the Client/Worker API for PHP can only be installed as a PECL extension, or a very-out-of-date PEAR extension called Net_Gearman.

Nonetheless, after yet more research I decided that I would give it a shot by using Cygwin to get the job server running (if you haven't used Cygwin before, be sure to read about it before attempting to install Gearman this way), and PEAR to use the API.  Pre-built PECL extensions aren't available for Windows anymore, and the build process for PHP extensions can be pretty painful, so it makes PEAR look good by comparison even if the code will be out of date.

I had a pretty frustrating time finally getting everything up and running due to various dependency issues, so I went back through the whole process and wrote it out step-by-step.  I used a Windows XP SP3 machine for this, but I also got it working on a Windows 7 machine as well.

Installing the Gearman job server (gearmand) on Windows with Cygwin

Installing Cygwin

  1. If you don't have Cygwin already, you can get it from http://www.cygwin.com.  The setup file is located here, and the setup process is pretty straightforward; run it and follow the wizard.  Full installation instructions are available at the Cygwin site.
  2. Keep the Cygwin setup.exe file handy after you've installed the default software packages, as you'll need it in the future to add packages, similar to apt-get, yum, and other Linux/UNIX package managers.
  3. Cygwin installs with some basic packages, including a Cygwin Bash Shell that goes into your Start Menu.  I prefer the mintty emulator instead, as it has less of a DOS Command Prompt feel and better terminal features.  Feel free to use whatever shell you like of course.  You can get mintty by re-running the setup.exe, and at the package selection screen, type 'mintty' into the Search bar at the top left.  Expand the "Shells" category, and click on the word "Skip" under the "New" column beside the mintty package to select it before continuing the install process.

Installing Cygwin Package Dependencies needed for Gearman

If you're not already in the Cygwin setup, re-run the Cygwin setup.exe and go through to the package selection screen.  The following is a list of dependency packages you will need in order to build the Gearman job server (gearmand).  None of these packages were installed by default with Cygwin:

  • gcc
  • make
  • libuuid1-devel
  • libiconv

There's a good installation tutorial here that walks through getting gcc and make installed for people unfamiliar with Cygwin.  Finding the others is pretty straightforward, the Search bar in the package selector works well.

Installing libevent

Gearmand requires an event notification library called libevent that you cannot get as a Cygwin package, which means it has to be installed from source.  You can get the source here.

  1. Download and unpack the latest libevent stable release.  At the time of this writing, I used libevent-1.4.14b-stable.
    NOTE: Download and unpack to a directory that does not contain spaces in the name, such as "C:/cygwin/home/Zombat/libevent-1.4.14b-stable".  If you unpack to something with spaces like "C:/Documents and Settings/Zombat/", the build process might not be able to install libevent correctly (libtool has a hard time with spaces)!
  2. Open a Cygwin shell and cd to the unpacked libevent directory.
  3. Run the following commands:

./configure
make
make install

libevent should now be installed and ready to be used when compiling the Gearman job server.

Installing the Gearman job server, gearmand.exe

  1. Download and unpack the C implementation of gearmand from http://gearman.org/index.php?id=download
  2. Open a cygwin shell and cd to your unpacked gearmand directory.  Same rules apply as before, make sure you've unpacked in a directory with no spaces in the path!  libtool hates that, and your build may fail.
  3. Run the following commands:

./configure
make
make install

The Gearman job server should now be installed and ready to use!  Mine was installed at /usr/local/sbin/gearmand.exe, and running it with a "triple verbose" flag (-vvv) should produce the following:

gearmand.exe startup debug output

That's it for the job server.  When you want to start it, simply open a Cygwin shell and run gearmand.exe.  Running it with the -d flag will cause the server to run as a daemon in the background, and running with --help will show you the full option list.

Installing the Gearman Client and Worker API (Net_Gearman)

I chose to install the PEAR Client and Worker API, as it is native PHP and doesn't involve compiling PECL extensions.  The PEAR package is called Net_Gearman, and was originally written by Joe Stump at Digg.com.  It is old and out of date now, although there appears to be a more recent fork at http://github.com/brianlmoon/net_gearman.  I stuck with the older version, as I suspect it will meet my needs, and was readily available as a PEAR package.

This also makes installation relatively painless.  Assuming you've previously set PEAR up, then all you have to do is open a command window (not a Cygwin shell) and run:

pear install Net_Gearman-alpha

The "-alpha" portion is necessary, as Net_Gearman apparently never made it to a stable release version.  That being said, it has functioned well for me so far.  Perhaps someone will pick the project up in the future.

I'll write more about getting started with the Client and Worker API in the next article, so we can actually use Gearman to get some work done.

轉自:
http://www.phpvs.net/2010/11/30/installing-gearman-and-gearmand-on-windows-with-cygwin/
posted on 2012-12-28 11:17 小果子 閱讀(2637) 評論(0)  編輯 收藏 引用 所屬分類: 學習筆記C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本色道久久88精品综合| 亚洲一区中文字幕在线观看| 一区二区精品| 在线亚洲一区观看| 亚洲天堂av在线免费| 亚洲理论在线| 亚洲一区二区三区在线视频| 亚洲欧美日韩国产精品| 亚洲欧美中日韩| 久久久亚洲精品一区二区三区 | 日韩亚洲欧美一区二区三区| 欧美激情a∨在线视频播放| 欧美成人一区二区三区片免费| 欧美成人一区二区三区| 99re这里只有精品6| 亚洲一区二区三区四区中文| 久久成人国产精品| 欧美成人一区二区三区在线观看| 欧美激情第9页| 国产精品欧美日韩| 激情欧美日韩一区| 一区二区欧美在线| 久久福利毛片| 亚洲国产精品日韩| 欧美激情影院| 亚洲成色777777女色窝| 一区二区免费看| 久久激情五月丁香伊人| 最新日韩av| 久久精品系列| 国产精品国产三级国产aⅴ浪潮| 国语自产精品视频在线看| 99精品99久久久久久宅男| 久久精品在线| 99www免费人成精品| 久久九九精品99国产精品| 欧美视频免费| 亚洲精品婷婷| 麻豆久久婷婷| 亚洲欧美在线免费| 欧美视频在线免费| 日韩午夜av在线| 免费成人黄色av| 性色av一区二区三区红粉影视| 欧美日韩99| 亚洲精品乱码久久久久久按摩观| 久久久夜夜夜| 欧美一区二区三区啪啪| 国产精品视频专区| 亚洲一区二区3| 91久久久亚洲精品| 美女91精品| 亚洲电影专区| 久热精品视频在线| 欧美专区福利在线| 国语精品中文字幕| 久久欧美中文字幕| 久久成人羞羞网站| 国产综合视频| 久久免费黄色| 久久久久欧美| 在线免费观看成人网| 另类酷文…触手系列精品集v1小说| 亚洲欧美日本日韩| 国产欧美日韩亚洲| 久久九九精品| 久久久精品国产免大香伊| 美国成人直播| 久热精品视频| 最新日韩在线| 亚洲欧洲日韩在线| 欧美久色视频| 亚洲手机在线| 亚洲一区二区三区成人在线视频精品| 欧美午夜理伦三级在线观看| 亚洲专区在线| 欧美一区二区三区播放老司机| 国产日韩在线看片| 免费日本视频一区| 欧美激情aⅴ一区二区三区| 9人人澡人人爽人人精品| 一区二区欧美在线观看| 国产日韩精品一区二区浪潮av| 久久精品国产综合精品| 久久婷婷亚洲| 亚洲深夜福利网站| 欧美亚洲免费高清在线观看| 亚洲第一在线视频| 亚洲免费福利视频| 国产无一区二区| 欧美h视频在线| 欧美日韩另类在线| 久久www成人_看片免费不卡| 久久一区二区三区av| 一本色道久久加勒比精品| 亚洲一区二区网站| 亚洲国产精品t66y| 亚洲天堂av在线免费观看| 国内自拍视频一区二区三区| 亚洲精品1234| 国内成人在线| 99视频国产精品免费观看| 好吊日精品视频| 艳女tv在线观看国产一区| 一区在线免费| 亚洲一区二区日本| 99一区二区| 久久久久9999亚洲精品| 亚洲影院免费| 欧美高清在线一区| 久久久久久9| 国产精品欧美日韩久久| 91久久国产自产拍夜夜嗨| 国产揄拍国内精品对白| 99在线热播精品免费99热| 亚洲电影有码| 欧美一区二区三区视频在线 | 亚洲第一精品久久忘忧草社区| 在线一区观看| 99www免费人成精品| 久久这里有精品视频| 久久国产加勒比精品无码| 欧美午夜美女看片| 999在线观看精品免费不卡网站| 樱桃视频在线观看一区| 午夜精品亚洲一区二区三区嫩草| 亚洲激情电影中文字幕| 欧美一区二区在线视频| 欧美在线播放视频| 国产精品一二三| 欧美freesex8一10精品| 中文av字幕一区| 麻豆国产精品一区二区三区 | 日韩一级网站| 日韩西西人体444www| 久久影院午夜片一区| 久久最新视频| 91久久精品网| 欧美高清在线一区二区| 亚洲国产精品va在线看黑人| 亚洲人成在线观看| 欧美高清在线视频| 日韩一区二区精品葵司在线| 99精品国产热久久91蜜凸| 欧美精品xxxxbbbb| 日韩小视频在线观看专区| 亚洲尤物在线视频观看| 国产精品稀缺呦系列在线| 亚洲欧美激情诱惑| 久久噜噜亚洲综合| 亚洲激情另类| 欧美成人中文字幕| 99精品视频一区| 久久成人精品无人区| 伊人色综合久久天天五月婷| 久久综合久久久| 亚洲六月丁香色婷婷综合久久| 一本一本大道香蕉久在线精品| 国产精品家庭影院| 久久精品国产99国产精品澳门| 美女精品网站| 在线视频精品一区| 国产欧美日韩亚洲| 欧美成人国产一区二区| 亚洲视频成人| 免费观看久久久4p| 亚洲天堂av高清| 激情视频一区| 欧美视频免费在线观看| 久久不射网站| 日韩午夜激情| 久久精品视频免费| 日韩一区二区免费高清| 国产欧美综合在线| 女同一区二区| 亚洲永久在线| 亚洲国产国产亚洲一二三| 亚洲欧美日韩成人高清在线一区| 精品电影在线观看| 国产精品国产馆在线真实露脸| 久久久亚洲国产天美传媒修理工| 一区二区av在线| 欧美成人免费全部观看天天性色| 亚洲欧美国产日韩天堂区| 在线日韩欧美| 国产精品综合不卡av| 欧美美女喷水视频| 久久超碰97人人做人人爱| 中日韩在线视频| 亚洲黄色成人网| 久久在精品线影院精品国产| 亚洲一区久久| 99视频精品全国免费| 亚洲国产99| 精品不卡在线| 一区二区三区在线视频观看| 国产精品视频一区二区三区 | 久久精品麻豆| 香蕉国产精品偷在线观看不卡| 99精品国产一区二区青青牛奶 |