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

xiaoguozi's Blog
Pay it forword - 我并不覺(jué)的自豪,我所嘗試的事情都失敗了······習(xí)慣原本生活的人不容易改變,就算現(xiàn)狀很糟,他們也很難改變,在過(guò)程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛(ài)傳出去,很困難,也無(wú)法預(yù)料,人們需要更細(xì)心的觀察別人,要隨時(shí)注意才能保護(hù)別人,因?yàn)樗麄兾幢刂雷约阂裁础ぁぁぁぁ?/span>

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.

轉(zhuǎn)自:
http://www.phpvs.net/2010/11/30/installing-gearman-and-gearmand-on-windows-with-cygwin/
posted on 2012-12-28 11:17 小果子 閱讀(2637) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 學(xué)習(xí)筆記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>
            99亚洲视频| 欧美视频一区二区三区四区| 久久精品最新地址| 欧美日韩精品伦理作品在线免费观看| 国产一级久久| 久久久水蜜桃av免费网站| 亚洲影院污污.| 国内精品美女在线观看| 鲁大师成人一区二区三区 | 日韩视频在线观看国产| 亚洲国产日韩一区二区| 在线综合亚洲| 亚洲欧美日本在线| 韩国一区二区三区美女美女秀| 久久婷婷综合激情| 免费不卡欧美自拍视频| 亚洲精品日韩在线观看| 正在播放欧美视频| 韩国精品在线观看| 欧美一区二区三区免费看 | 国产一二精品视频| 欧美一区二区三区免费看 | 欧美大尺度在线观看| 中文国产成人精品| 欧美一级专区| 久久人人超碰| 在线观看日韩| 亚洲美女在线观看| 国产欧美在线视频| 欧美电影免费观看高清| 欧美xx69| 日韩午夜激情电影| 亚洲欧美日韩综合国产aⅴ| 欧美一区二区三区在线视频| 久久九九国产| 老牛嫩草一区二区三区日本 | 国产精品理论片| 欧美一区二区三区免费视频| 免费在线观看日韩欧美| 99精品国产一区二区青青牛奶| 欧美精品一区二区在线观看| 久久一区国产| 亚洲裸体俱乐部裸体舞表演av| 久久精品一区二区三区中文字幕| 国产午夜精品一区二区三区视频| 亚洲黄一区二区三区| 国产深夜精品| 美女国产精品| 一区二区三区视频在线观看| 亚洲激情一区二区| 久久精品国产精品亚洲综合| 午夜国产不卡在线观看视频| 国产在线观看一区| 亚洲国产精品毛片| 午夜精品久久久久久久男人的天堂| 国产日韩欧美黄色| 欧美精品v国产精品v日韩精品| 久久精品中文字幕一区| 亚洲精品黄网在线观看| 国产麻豆精品theporn| 一区二区三区视频在线播放| 久久午夜精品| 亚洲欧美国产日韩天堂区| 欧美日在线观看| 久久久精品性| 中国成人黄色视屏| 亚洲日本电影| 黄色成人小视频| 欧美视频在线播放| 欧美二区在线播放| 免费看成人av| 亚洲国产精品一区二区第四页av | 麻豆精品在线视频| 亚洲欧美大片| 狠狠综合久久| 国产精品扒开腿爽爽爽视频 | 亚洲国产婷婷香蕉久久久久久| 久久国产手机看片| 国产一区二区三区日韩| 欧美日韩国产一区二区三区| 久久综合网hezyo| 欧美一区深夜视频| 亚洲一区二区在线看| 亚洲日本一区二区| 亚洲欧美日韩综合| 91久久久久久国产精品| 欧美日韩亚洲一区二区三区| 亚洲一区黄色| 国产一区二区三区久久久久久久久 | 亚洲国产专区校园欧美| 国产一区二区三区四区hd| 国产精品久久久久久亚洲调教| 欧美精品激情在线| 日韩天堂在线视频| 亚洲精美视频| 最新国产乱人伦偷精品免费网站| 欧美成人官网二区| 日韩亚洲不卡在线| 亚洲精品美女在线观看| 亚洲福利国产精品| 91久久精品美女高潮| 永久久久久久| 亚洲国产精品视频一区| 一区二区三区在线免费观看 | 欧美日韩视频第一区| 欧美日韩不卡| 欧美视频中文在线看| 欧美丝袜第一区| 国产精品日韩欧美一区二区三区| 久久精品国产久精国产思思| 久久av免费一区| 99在线精品视频| 鲁鲁狠狠狠7777一区二区| 另类亚洲自拍| 欧美国产激情| 亚洲裸体俱乐部裸体舞表演av| 久久最新视频| 欧美黄色一区二区| 亚洲欧美99| 欧美一区二区在线看| 欧美女同视频| 国产精品久久久久7777婷婷| 欧美 日韩 国产在线| 欧美日本在线看| 国产精品毛片va一区二区三区| 国产精品日日摸夜夜摸av| 国产一区在线播放| 亚洲国产成人一区| 在线综合亚洲| 久久免费视频在线| 亚洲国产精品一区二区www| 一本一本久久| 久久久爽爽爽美女图片| 亚洲欧美视频| 另类人畜视频在线| 欧美午夜久久久| 国语自产偷拍精品视频偷| 亚洲狼人综合| 久久国产精品亚洲va麻豆| 欧美xx69| 亚洲欧美国产高清| 免费成人性网站| 国产精品最新自拍| 亚洲精品乱码久久久久久| 欧美一激情一区二区三区| 亚洲一区二区黄| 亚洲天堂男人| 欧美成人黄色小视频| 一区二区三区你懂的| 久久在线视频在线| 国产精品三级视频| 亚洲免费大片| 久久综合伊人77777蜜臀| 99re6这里只有精品| 久久中文欧美| 国产片一区二区| 亚洲视频第一页| 亚洲电影专区| 亚洲高清免费| 欧美在线播放一区| 欧美性做爰毛片| 亚洲乱码国产乱码精品精| 久久综合狠狠综合久久综合88 | 亚洲国内欧美| 久久免费精品视频| 欧美二区视频| 在线精品国产欧美| 日韩视频在线免费| 麻豆国产精品一区二区三区 | 91久久嫩草影院一区二区| 久久久久成人精品免费播放动漫| 中文久久乱码一区二区| 欧美激情一区在线| 亚洲精品视频中文字幕| 米奇777在线欧美播放| 欧美一区二区三区视频在线观看| 国产精品国产三级国产普通话蜜臀| 亚洲精品一区二区三区婷婷月| 老司机午夜精品视频在线观看| 亚洲欧美激情视频| 国产精品免费网站| 亚洲综合999| 亚洲一区二区在线观看视频| 欧美午夜在线| 午夜精品在线| 亚洲欧美另类中文字幕| 欧美日韩在线视频观看| 久久久久99| 亚洲福利国产精品| 欧美成人精品1314www| 久久综合伊人77777尤物| 亚洲福利专区| 91久久精品日日躁夜夜躁国产| 免费成人在线视频网站| 亚洲国产日韩欧美在线99| 亚洲承认在线| 亚洲欧美国产制服动漫| 国产欧美视频一区二区三区| 久久国产一二区| 久久一日本道色综合久久|