PaxDaemonica.

Python ¿ë ÀÛ¾÷ÀÚ ¹× ÀÀ¿ë ÇÁ·Î±×·¥ ¼­¹ö
Áö±Ý ´Ù¿î·Îµå

PaxDaemonica. ¼øÀ§ ¹× ¿ä¾à

±¤°í

  • Rating:
  • ƯÇã:
  • MIT/X Consortium Lic...
  • °Ô½ÃÀÚ À̸§:
  • Jeffrey Jenkins
  • °Ô½ÃÀÚ À¥»çÀÌÆ®:
  • http://qcircles.net

PaxDaemonica. ű×


PaxDaemonica. ¼³¸í

Python ¿ë ÀÛ¾÷ÀÚ ¹× ÀÀ¿ë ÇÁ·Î±×·¥ ¼­¹ö PaxDaemonica´Â ÅëÀÏ µÈ ·Î±ë ¹× ¸ð´ÏÅ͸µ, ¸Å¿ì °£´ÜÇÑ ¹èÆ÷ ¹× ¾÷±×·¹À̵å ÇÁ·Î¼¼½º, RPC / ¿ø°Ý ºñµ¿±â ½ÇÇàÀ» »ç¿ëÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â ½Ã½ºÅÛÀ¸·Î ¼³Á¤ÇÏ´Â ¸ðµâÀÔ´Ï´Ù. ÀÌ README´Â ÇöÀç ±¸Çö µÈ ÀÛ¾÷À» ¹®¼­È­ÇÏ·Á°í ½ÃµµÇÕ´Ï´Ù. ³ª´Â ¹Ì·¡ÀÇ °èȹ¿¡ ´ëÇØ ºí·Î±× °Ô½Ã¹°À» ¾²°í ÀûÀýÇÑ ¼½¼Ç¿¡ ¸µÅ©ÇϹǷΠÁö±Ý ¹«¾ùÀ» ¹Ù·ÎÇÏ´ÂÁö¿¡ ´ëÇÑ È¥¶õÀÌ ¾øÀ¸¹Ç·Î ¿ÜºÎ ¿ä±¸ »çÇ×ÀÇ ¼ö¸¦ ÃÖ¼ÒÈ­ÇÏ·Á°í ½ÃµµÇß½À´Ï´Ù. ÇöÀç¿Í ¸¶Âù°¡Áö·Î µ¿ÀÏÇÑ ½Ã½ºÅÛ ¹× Python Redis Library (https://github.com/andymcurdy/redispy : starting up / basic processtost start paxd¸¦ ½ÇÇàÇÏ°í python paxd / rootserver.py¸¦ ½ÇÇàÇϽʽÿÀ. ...¿¡ ÀÌ·¸°ÔÇÏ¸é ¼­¹ö, ÄÁÆ®·Ñ·¯ ÇÁ·Î¼¼½º ¹× Æ÷Æ® 8000ÀÇ UI°¡ ½ÃÀ۵˴ϴÙ. UIÀÇ À¥ ¼­¹ö´Â ½ÇÁ¦·Î PAXD / WebUIAPP / WebUI.py¿¡¼­ ãÀ» ¼öÀÖ´Â PAXD ÀÀ¿ë ÇÁ·Î±×·¥ ÁÖÀ§ÀÇ ¾ãÀº ·¡ÆÛÀÔ´Ï´Ù. ¼­¹ö¿¡´Â ´Ù¾çÇÑ ¸í·ÉÀ» ó¸®ÇÏ´Â ÄÁÆ®·Ñ·¯¿¡ ´ëÇÑ Pseudo-AppÀÌ ÀÖ½À´Ï´Ù. ÇöÀç ·çÆ® ¼­¹ö¿¡ Çϵå ÄÚµù µÈ °ªÀÌ ÀÖÁö¸¸ °íÀ¯ ÇÑ ÀνºÅϽº ID°¡ ÀÖ¾î¾ßÇÕ´Ï´Ù. °íÀ¯ ID´Â µ¿ÀÏÇÑ ´ë±â¿­¿¡¼­ PAXD ÀбâÀÇ ¿©·¯ ÀνºÅϽº°¡ÀÖÀ» ¶§¸¸ Áß¿äÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥À»·Îµå ÇÒ ¶§ "active"ÀÛ¾÷À» "active"ÀÛ¾÷À» "active"ÀÛ¾÷ ¸ñ·ÏÀ¸·Î À̵¿ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù (ÀÀ¿ë ÇÁ·Î±×·¥ ½ÃÀÛ ÀÛ¾÷Àº ¾î¶² È°¼º ŽºÅ©°¡ÀÖÀ» ¼ö ¾øÀ¸¹Ç·Î ÇöÀçÀÇ ÀνºÅϽº ID°¡ÀÖ´Â ÀÛ¾÷À̶ó°í °¡Á¤ÇÏ´Â °ÍÀÌ ¾ÈÀüÇÕ´Ï´Ù. ¼­¹ö°¡ Á¾·á µÉ ¶§ ¼­¹ö°¡ ºÒ¿ÏÀüÇß½À´Ï´Ù.) .ApplicationSA PAXD ÀÀ¿ë ÇÁ·Î±×·¥Àº °¡Àå °£´ÜÇÕ´Ï´Ù. Python ÇÔ¼ö ¸¸ ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÀ¿ë ÇÁ·Î±×·¥À» ¾à°£ ´õ ÀûÀçÇÏ·Á¸é ÇÊ¿äÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº ´ÙÀ½À»·ÎµåÇÏ´Â µ¥ ÇÊ¿äÇÑ ¸î °¡Áö ÁÖ¿ä ¼Ó¼º À»°¡Áý´Ï´Ù. - °æ·Î - ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â ÇÁ·Î¼¼½ºÀÇ sys.path¿¡ Ãß°¡µË´Ï´Ù.ÀÌ Ç׸ñÀº oth.delimiated.nameÀ̶ó°í ºÒ·Á¾ßÇÕ´Ï´Ù. entry.rpartition ( '.') == (module, ', function) - Å¥ - (¼±Åà »çÇ×) ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ µ¥ÀÌÅ͸¦ °¡Á® ¿À´Â À§Ä¡ÀÔ´Ï´Ù. ´ë±â¿­ÀÌ ¾øÀ¸¸é ¸ðµç ÇÁ·Î¼¼½º°¡ ¸í·ÉÀ» Áö¼ÓÀûÀ¸·Î ½ÇÇàÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ °³Ã¼ÀÇ ´Ù¸¥ ¼Ó¼ºÀÌ ÀÖÁö¸¸ Áö±ÝÀº ¼³Á¤ÇÒ ¼öÀÖ´Â À¯ÀÏÇÑ °ÍµéÀÔ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥À̷εåµÇ¸é ÀÓÀÇ ID°¡ ÇÒ´çµË´Ï´Ù. µ¿ÀÏÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¿©·¯ ÀνºÅϽº°¡ ¼­¹ö¿¡¼­ ½ÇÇàµÉ ¼ö ÀÖ½À´Ï´Ù. ¼­¹ö¿¡¼­ »ç¿ëÇÒ ¼öÀÖ´Â ¸í·ÉÀº ´ÙÀ½°ú °°½À´Ï´Ù. - ÀÀ¿ë ÇÁ·Î±×·¥À»·ÎµåÇÕ´Ï´Ù. /Áü. ½ºÅ©¸³Æ® / load_task.py.- ÀÀ¿ë ÇÁ·Î±×·¥À» ÀϽà ÁßÁöÇϽʽÿÀ. / ÀϽà ÁßÁö? id = app_id - ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÏÁ¤ÇÏÁö ¾Ê½À´Ï´Ù. / unpause? id = app_id- ÀÀ¿ë ÇÁ·Î±×·¥À» Á¦°ÅÇϽʽÿÀ. / »èÁ¦? ID = APP_IDTHE ¸Ç ¾Æ·¡ÀÇ ¸í·ÉÀº À¥ ui.rpc / asynchronous executionin paxd / client.py¿¡¼­ "Áö¿¬"¼Ó¼ºÀ» Ãß°¡ÇÏ´Â ÀÛ¾÷ Àå½ÄÀÚ°¡ ÇÔ¼ö¿¡ Ãß°¡µË´Ï´Ù. ¼Ó¼ºÀº ¸í·ÉÀ» ºñµ¿±â ÀûÀ¸·Î ½ÇÇàÇϱâ À§ÇØ (¼¿·¯¸®¿¡¼­¿Í °°ÀÌ) »ç¿ëµÉ ¼öÀÖ´Â ÇÔ¼öÀÔ´Ï´Ù. ÀýÀÎ ¸Þ½ÃÁö¸¦ ¼­¹ö¿¡ º¸³»°í ¿øÇÏ´Â °æ¿ì °á°ú¸¦ °Ë»öÇÏ´Â µ¥ »ç¿ëÇÒ ¼öÀÖ´Â ¾à¼Ó °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù. ¿äûÀÌ ½ÇÁ¦·Î 󸮵DZâ À§Çؼ­´Â µ¥ÄÚ ·¹ÀÌÆà µÈ ÇÔ¼öÀÇ ÀÀ¿ë ÇÁ·Î±×·¥À»·ÎµåÇؾßÇÕ´Ï´Ù (½ºÅ©¸³Æ® / load_task.py.web uithe À¥ UI, Æ÷Æ® 8000¿¡¼­ ½ÃÀÛµÈ ÂüÁ¶, ½ÇÇàÁßÀÎ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¸ñ·ÏÀ» Á¦°øÇϸç ÀϽà ÁßÁö ÇÒ ¼ö ÀÖ½À´Ï´Ù. , °Ý³³µÇÁö ¾Ê°í Á¦°ÅµË´Ï´Ù. ¼­¹ö¸¦ ¸ð´ÏÅ͸µ / Á¦¾îÇÏ´Â µ¥ »ç¿ëµÇ´Â API¸¦ »ç¿ëÇÏÁö ¾Êµµ·Ï ¼³Á¤ÇÒ ¼ö ¾øÀ¸¹Ç·Î Web UI ÀÚü´Â ÀϽà ÁßÁö µÉ ¼ö ¾ø½À´Ï´Ù. Server.MessAdeShere´Â ¼Û½Å ¿äû¿¡ ´ëÇÑ µÎ °¡Áö Ŭ·¡½º¿Í Python Pickling ¿ëÀÔ´Ï´Ù. ±×µéÀÇ API´Â µ¿ÀÏÇÕ´Ï´Ù. ¿äû¿¡´Â REDIS ¿¬°á, ´ë±â¿­ÀÇ À̸§, ´ë»óÀÌ È£Ãâ ÇؾßÇÏ´Â args / kwds°¡ ÇÊ¿äÇÕ´Ï´Ù. °¢ ¿äû¿¡´Â ÀÀ´äÀÌ °¡¾ßÇÏ´Â redisÀÇ ´ë±â¿­ ÀÎ UUID°¡ ÀÖ½À´Ï´Ù. ´ë±â¿­¿¡´Â ÇϳªÀÇ Ç׸ñ ¸¸ ÀÖ½À´Ï´Ù.) ¸Þ½ÃÁö°¡ Àü¼ÛµÇ¸é RedisÀÇ ÁÖ¾îÁø ´ë±â¿­¿¡ Ãß°¡µË´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ Ç®¿¡ ¹«·á ÇÁ·Î¼¼¼­°¡ÀÖ´Â °æ¿ì ´ÙÀ½°ú °°ÀÌÇϽʽÿÀ. - ´ë±â¿­¿¡¼­ Ç׸ñÀ» ´ë±â¿­·Î À̵¿ÇϽʽÿÀ. Æ®·£Àè¼Ç, ´ë±â¿­¿¡¼­ Ç׸ñÀ» »èÁ¦ÇϽʽÿÀ. º¸·ù ÁßÀÌ¸ç ´ë±â¿­¿¡¼­ ¼³Á¤ÇϽʽÿÀ. e, redis Çؽô Ʈ·£Àè¼Ç¿¡¼­ Ç׸ñÀ» id-process·Î ó¸®ÇÏ°í Å¥¿¡¼­ Ç׸ñÀ» »èÁ¦ÇÏ°í queue : È°¼ºÀ» »èÁ¦ÇÏ°í ¿äûÀÇ ÀÀ´ä ¸Þ¼Òµå¿¡ ´ëÇÑ ÀÀ´äÀ» ¾¹´Ï´Ù. .get ()ÀÌ ¾à¼Ó¿¡¼­ È£ÃâµÇ¸é °ªÀ» ¹ÝȯÇϰųª ¿¹¿Ü¸¦ ¿Ã¸®½Ê½Ã¿À (¿À·ù°¡ÀÖ´Â °æ¿ì). ¿ä±¸ »çÇ× : ¡¤ ÆÄÀ̽ã


PaxDaemonica. °ü·Ã ¼ÒÇÁÆ®¿þ¾î