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

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>
            欧美一区=区| 国模叶桐国产精品一区| 亚洲欧美一区二区三区久久| 影音先锋日韩有码| 欧美精品日韩| 亚洲精品国产精品乱码不99| 亚洲国产91| 国产精品免费视频xxxx | 亚洲视频在线免费观看| 欧美www视频| 老司机精品视频一区二区三区| 欧美亚洲视频在线观看| 久久成年人视频| 久久九九国产精品怡红院| 久久久久国产精品午夜一区| 久色成人在线| 亚洲黄色av| 亚洲欧美日韩另类| 美女视频黄免费的久久| 欧美日韩在线另类| 国产在线精品成人一区二区三区| 永久免费毛片在线播放不卡| 一区二区三区国产盗摄| 久久五月天婷婷| 99热免费精品在线观看| 午夜精品视频在线观看一区二区| 久久亚洲精品中文字幕冲田杏梨| 欧美另类99xxxxx| 国产一区视频网站| 亚洲最新中文字幕| 欧美一级理论片| 欧美电影在线观看完整版| 夜夜狂射影院欧美极品| 久久久亚洲一区| 欧美色网一区二区| 亚洲第一区色| 欧美在线你懂的| 99国产精品久久久| 老司机67194精品线观看| 国产精品网站视频| 一本色道久久综合亚洲精品不卡 | 国产午夜精品久久久| 夜夜精品视频一区二区| 美女视频黄免费的久久| 亚洲视屏一区| 欧美黄色aa电影| 在线观看视频免费一区二区三区| 亚洲在线观看| 亚洲国产欧美一区二区三区久久 | 久久国内精品自在自线400部| 亚洲第一狼人社区| 久久国产毛片| 国产亚洲欧洲997久久综合| 亚洲视频一二三| 亚洲国产欧美在线人成| 久久久久在线| 精品1区2区3区4区| 久久久亚洲欧洲日产国码αv| 在线一区二区三区做爰视频网站| 欧美另类一区| 一个人看的www久久| 亚洲欧洲精品一区二区三区波多野1战4| 久久九九99视频| 在线播放国产一区中文字幕剧情欧美| 久久国产精品久久久| 欧美亚洲一区二区在线| 国产亚洲观看| 久久天天狠狠| 久久久亚洲影院你懂的| 在线播放亚洲| 亚洲激情专区| 国产精品video| 亚洲欧美电影院| 亚洲一区二区三区影院| 国产精品日韩一区| 久久精品国产99国产精品| 久久高清免费观看| 亚洲国产成人精品久久| 亚洲人成亚洲人成在线观看| 欧美日韩网站| 久久黄色网页| 老司机精品视频网站| 日韩亚洲在线观看| 亚洲一区国产一区| 1000部国产精品成人观看| 亚洲级视频在线观看免费1级| 欧美日韩在线看| 久久午夜精品一区二区| 免费看黄裸体一级大秀欧美| 日韩写真视频在线观看| 亚洲天堂免费观看| 亚洲大胆美女视频| 一区二区日韩| 尤妮丝一区二区裸体视频| 最近中文字幕mv在线一区二区三区四区| 欧美日韩日本国产亚洲在线| 欧美在线日韩精品| 欧美高清在线观看| 欧美尤物巨大精品爽| 麻豆成人91精品二区三区| 亚洲尤物影院| 免费在线观看一区二区| 午夜伦欧美伦电影理论片| 国产精品视频一二三| 亚洲视频福利| 国内精品久久久久影院色| 91久久国产综合久久蜜月精品 | 国产精品影音先锋| 女人色偷偷aa久久天堂| 欧美三级特黄| 久久尤物视频| 国产精品系列在线| 亚洲三级影院| 亚洲激情电影在线| 欧美伊久线香蕉线新在线| 日韩视频一区二区| 久久久亚洲人| 欧美在线观看一区二区三区| 欧美久色视频| 欧美成人午夜| 在线电影国产精品| 午夜在线一区二区| 亚洲免费视频在线观看| 欧美精彩视频一区二区三区| 蜜臀av在线播放一区二区三区| 国产精品看片你懂得| 日韩视频亚洲视频| 亚洲国语精品自产拍在线观看| 欧美一区二区三区四区夜夜大片 | 国产精品永久| 99pao成人国产永久免费视频| 亚洲国产欧美日韩精品| 久久久蜜桃一区二区人| 久久久久久久一区二区三区| 国产欧美一区二区三区国产幕精品| 99re亚洲国产精品| 亚洲视频日本| 国产精品国产三级国产普通话99 | 久久久免费精品| 国产精品日韩一区| 亚洲女人天堂av| 午夜精品一区二区三区在线| 欧美午夜精品久久久久久孕妇 | 亚洲欧美国产高清va在线播| 欧美精品在线播放| 亚洲精品视频在线观看免费| 99精品视频免费在线观看| 欧美精品aa| 99国产成+人+综合+亚洲欧美| 亚洲性xxxx| 国产欧美一区二区视频| 欧美在线观看一区二区| 美日韩精品免费| 日韩视频一区二区三区在线播放 | 在线免费观看一区二区三区| 免费在线亚洲| 亚洲精品视频在线播放| 午夜视频一区在线观看| 国内精品**久久毛片app| 亚洲日本一区二区三区| 国产亚洲欧美日韩日本| 玖玖综合伊人| 亚洲精品久久在线| 亚洲欧美激情诱惑| 国户精品久久久久久久久久久不卡| 久久www成人_看片免费不卡| 欧美激情 亚洲a∨综合| 一区二区精品国产| 国产一区二区欧美日韩| 欧美电影专区| 香蕉久久夜色精品国产| 亚洲大片在线| 欧美一区二区性| 最新69国产成人精品视频免费| 欧美日韩在线免费| 久久九九电影| 亚洲制服少妇| 91久久视频| 久久久久久久高潮| 一区二区三区www| 国产主播一区二区三区四区| 欧美精品免费视频| 久久av资源网站| 亚洲最新色图| 欧美成人自拍| 久久精品免视看| 亚洲午夜羞羞片| 亚洲黄色三级| 国产在线欧美| 国产精品视频免费观看| 欧美成熟视频| 久久琪琪电影院| 午夜精品久久久久久久99水蜜桃| 欧美国产在线视频| 久久久久国产精品午夜一区| 亚洲欧美在线免费观看| 99精品视频一区| 亚洲欧洲日本一区二区三区| 国内视频精品| 国内精品久久久久久久影视麻豆|