-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
69 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
{"name":"Daemon","tagline":"daemon_code","body":"### Welcome to GitHub Pages.\r\ntest\r\nThis automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new branch:\r\n\r\n```\r\n$ cd your_repo_root/repo_name\r\n$ git fetch origin\r\n$ git checkout gh-pages\r\n```\r\n\r\nIf you're using the GitHub for Mac, simply sync your repository and you'll see the new branch.\r\n\r\n### Designer Templates\r\nWe've crafted some handsome templates for you to use. Go ahead and continue to layouts to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved if it remained markdown format.\r\n\r\n### Rather Drive Stick?\r\nIf you prefer to not use the automatic generator, push a branch named `gh-pages` to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator written by our own Tom Preston-Werner. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.\r\n\r\n### Authors and Contributors\r\nYou can @mention a GitHub username to generate a link to their profile. The resulting `<a>` element will link to the contributor's GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.\r\n\r\n### Support or Contact\r\nHaving trouble with Pages? Check out the documentation at http://help.github.com/pages or contact support@github.com and we’ll help you sort it out.\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} | ||
{"name":"Daemon","tagline":"daemon_code","body":"**Monitoring and Management System of FMCG online Invoicing Service**\r\n**快销品在线进销存服务管理系统**\r\n====\r\n**used technologies**: Linux environment, nginx web reverse proxy, tornado web server, develop language: Python, Shell. \r\nInvoicing project select the tornado as its Web server and nginx reverse proxy. One tornado process serves one user; programming language: python, shell\r\n\r\n**使用技术**: linux环境,nginx网页代理服务器,tornado web服务器,语言为python, shell。\r\n****\r\n\r\n##Project Background:\r\nFrom the browser, mobile terminal, the FMCG Invoicing project provides professional online invoicing management services.\r\n\r\nIn invoicing project, One tornado process serves one company(user). Each service process would connect to one of multi-synchronized databases. During service processes' running, many exceptions may occur such as process crashes, DB status changing to (un)available, the tornado process get stuck, daemon crash itself. \r\n\r\nAnd there also may come some daily routines, such as Add-Del-Modify a user's information, tornado application package update, update the daemon configuration file. \r\n\r\nThis daemon will monitor and handle all of these events in real-time at minimal performance cost, to ensure stability and robustness of invoicing service\r\n\r\n在线进销存管理系统中,一个tornado进程服务与一个商户,每个服务进程只连接多同步db数据库中的一个。在服务运行中,很多异常可能发生比如db不可用了,进程卡死了,也有可能进行一些日常事务比如增删用户,程序包更新等等. 由此就需要一个就需要一个监控处理这些事件和变化的程序来保证在线服务的鲁棒性实时性.\r\n \r\n\r\n## Modules Instruction:\r\n\r\n\r\n- **Main module:**\r\n\r\n Each module will push some message to this module, main module will react properly on each kind of message. Of course it will also ensure its validation after a restart.\r\n\r\n 主模块:负责对各种模块推送过来的变化消息做出应对,当然它也会保证自己的重启有效性。\r\n\r\n- **DB module:**\r\n\r\n Each Connection_watch_dog is responsible for watching and checking a certain db connection. the db_master will assign checking task with a deadline to them. after deadline db_master will look through who haven't report, and change a dict of dbs status. Outside module could visit, restart db_master through this proxy, and massage of db change could be push out through this proxy too.\r\n\r\n 每个监控狗负责监控检查一个db连接,db主任来给他们分配检查任务,根据提交情况更改一个db状态表。外部模块通过db代理来访问,重启db主任,db主任通过代理向外推送db的变化。\r\n\r\n- **Path module:**\r\n\r\n user's personnel directory(under which lie that user's config and running service pid file and using port info) will be put under specified path, when some modification, addition and deletion of these personnel information occur under that path. message of adduser, deluser, moduser to the main module.\r\n\r\n path模块:在用户个人目录下放着用户的配置信息服务进程pid,和port端口,当在那个目录下增删改这些信息的时候,该模块向主模块提交变化消息。\r\n\r\n- **Dispatcher module:**\r\n\r\n It's responsible for checking those web processes' validation cyclically.\r\n\r\n 负责对这些web服务进行周期性检查,有三个调度状态队列.\r\n\r\n- **Test module:**\r\n\r\n 模拟服务中各种突发事件,然后观察该deamon应对情况。\r\n\r\n Simulate most kinds of incidents and daily routine in service running, such as\r\n process crashes, DB status changing to (un)available, the tornado process get stuck, daemon crash itself.\r\n\r\n and Add-Del-Modify a user's information, tornado application package update, update the daemon configuration file.\r\n\r\n then see the handling and recovery result of this daemon.\r\n\r\n\r\n###Existing problems:\r\n pyinotify massage push need manually flush: Inotify is a series of API for receiving change massage of specified file and fold. python library of pyinotify is just a encapsulation of these API. when I use bat to change users' directory(it happen quickly), pyinotify's massage pushing sometime get a little stuck. but not miss any massage, for which I only need to manually flush that fold. \r\n\r\n inotify是接受文件(目录)变化消息通知的linux API, pyinotify是用python封装的这写API。\r\n\r\n 测试显示,当用批处理更改文件的时候,pyinotify消息推送有时会卡顿,但不会漏报。 \r\n\r\n 这个时候需要刷新一下文件目录消息还是会被推出来的。也就是在通过批处理改动用户信息的时候,如果没有生效,刷新一下那个目录。","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} |