seatools-starter-server-gunicorn


Nameseatools-starter-server-gunicorn JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummarySeatools gunicorn server starter.
upload_time2024-12-20 10:55:29
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords seatools starter
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # seatools gunicorn 服务器启动器

该框架在`gunicorn`层完成`seatools.ioc`的加载, 使用该项目后无需在每个进程额外执行`seatools.ioc.run`函数, 仅在启动时传递一个`ioc`启动的函数即可

## 使用指南
1. 安装, `poetry add seatools-starter-server-gunicorn`
2. 这里以`fastapi`为例, 假设`xxx.boot`模块存在`start`的自定义启动`ioc`函数

```python
from seatools.ioc import run


def start():
    run(scan_package_names='xxx', config_dir='./config')

```
命令行启动`gunicorn xxx.boot:start xxx.fastapi.app:app`, 其他参数与官方`gunicorn`一致, 在`gunicorn`基础上增加了一个`ioc_app`的参数, 需要指明`ioc`应用启动的函数
若配置`application.yml`或`application-[*].yml`中存在`seatools.server.gunicorn.app`配置, 则可不传递`gunicorn`的`app`仅传递`ioc_app`即可, 示例`gunicorn xxx.boot:start`
若同时使用了`seatools-starter-web-*`的`web`启动包, 则`gunicorn`的`app`直接可省略
4. 支持配置`config/application.yml`
```yaml
seatools:
  server:
    gunicorn:
      # 配置该参数后启动参数可忽略app参数, 配置与官方gunicorn.app.wsgiapp.run一致, 若安装 seatools-starter-web-* 可省略app配置 
      app: xxx.fastapi.app:app
      bind: ':8000'
      workers: 2
      worker_class: gevent
      ...
    
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "seatools-starter-server-gunicorn",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "seatools, starter",
    "author": null,
    "author_email": "seatools-py <521274311@qq.com>",
    "download_url": "https://files.pythonhosted.org/packages/7f/93/3020331a9a90f212e96bbb8043dfbe7f074f80820a026ca221a5cc83f661/seatools_starter_server_gunicorn-1.0.0.tar.gz",
    "platform": null,
    "description": "# seatools gunicorn \u670d\u52a1\u5668\u542f\u52a8\u5668\n\n\u8be5\u6846\u67b6\u5728`gunicorn`\u5c42\u5b8c\u6210`seatools.ioc`\u7684\u52a0\u8f7d, \u4f7f\u7528\u8be5\u9879\u76ee\u540e\u65e0\u9700\u5728\u6bcf\u4e2a\u8fdb\u7a0b\u989d\u5916\u6267\u884c`seatools.ioc.run`\u51fd\u6570, \u4ec5\u5728\u542f\u52a8\u65f6\u4f20\u9012\u4e00\u4e2a`ioc`\u542f\u52a8\u7684\u51fd\u6570\u5373\u53ef\n\n## \u4f7f\u7528\u6307\u5357\n1. \u5b89\u88c5, `poetry add seatools-starter-server-gunicorn`\n2. \u8fd9\u91cc\u4ee5`fastapi`\u4e3a\u4f8b, \u5047\u8bbe`xxx.boot`\u6a21\u5757\u5b58\u5728`start`\u7684\u81ea\u5b9a\u4e49\u542f\u52a8`ioc`\u51fd\u6570\n\n```python\nfrom seatools.ioc import run\n\n\ndef start():\n    run(scan_package_names='xxx', config_dir='./config')\n\n```\n\u547d\u4ee4\u884c\u542f\u52a8`gunicorn xxx.boot:start xxx.fastapi.app:app`, \u5176\u4ed6\u53c2\u6570\u4e0e\u5b98\u65b9`gunicorn`\u4e00\u81f4, \u5728`gunicorn`\u57fa\u7840\u4e0a\u589e\u52a0\u4e86\u4e00\u4e2a`ioc_app`\u7684\u53c2\u6570, \u9700\u8981\u6307\u660e`ioc`\u5e94\u7528\u542f\u52a8\u7684\u51fd\u6570\n\u82e5\u914d\u7f6e`application.yml`\u6216`application-[*].yml`\u4e2d\u5b58\u5728`seatools.server.gunicorn.app`\u914d\u7f6e, \u5219\u53ef\u4e0d\u4f20\u9012`gunicorn`\u7684`app`\u4ec5\u4f20\u9012`ioc_app`\u5373\u53ef, \u793a\u4f8b`gunicorn xxx.boot:start`\n\u82e5\u540c\u65f6\u4f7f\u7528\u4e86`seatools-starter-web-*`\u7684`web`\u542f\u52a8\u5305, \u5219`gunicorn`\u7684`app`\u76f4\u63a5\u53ef\u7701\u7565\n4. \u652f\u6301\u914d\u7f6e`config/application.yml`\n```yaml\nseatools:\n  server:\n    gunicorn:\n      # \u914d\u7f6e\u8be5\u53c2\u6570\u540e\u542f\u52a8\u53c2\u6570\u53ef\u5ffd\u7565app\u53c2\u6570, \u914d\u7f6e\u4e0e\u5b98\u65b9gunicorn.app.wsgiapp.run\u4e00\u81f4, \u82e5\u5b89\u88c5 seatools-starter-web-* \u53ef\u7701\u7565app\u914d\u7f6e \n      app: xxx.fastapi.app:app\n      bind: ':8000'\n      workers: 2\n      worker_class: gevent\n      ...\n    \n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Seatools gunicorn server starter.",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/seatools-py/seatools-starter-server-gunicorn",
        "Issues": "https://github.com/seatools-py/seatools-starter-server-gunicorn/issues"
    },
    "split_keywords": [
        "seatools",
        " starter"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cc8ffd10d1c9b8478cd2cfd68c00058c8dafef4db83b77849365d3d471c0a0fc",
                "md5": "b70d884fd198c13483231404f8de9a37",
                "sha256": "c0835deeec3421436cf2cc0c3af74a2bfd1572aa960b288d8eb790f2890f3945"
            },
            "downloads": -1,
            "filename": "seatools_starter_server_gunicorn-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b70d884fd198c13483231404f8de9a37",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 4299,
            "upload_time": "2024-12-20T10:55:26",
            "upload_time_iso_8601": "2024-12-20T10:55:26.514509Z",
            "url": "https://files.pythonhosted.org/packages/cc/8f/fd10d1c9b8478cd2cfd68c00058c8dafef4db83b77849365d3d471c0a0fc/seatools_starter_server_gunicorn-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7f933020331a9a90f212e96bbb8043dfbe7f074f80820a026ca221a5cc83f661",
                "md5": "e232c435b42d86a1bb84f6e56398a8fd",
                "sha256": "21437f72f346d474aff710692cdaf5255ad4847c31858262c348c47192a14426"
            },
            "downloads": -1,
            "filename": "seatools_starter_server_gunicorn-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e232c435b42d86a1bb84f6e56398a8fd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 3140,
            "upload_time": "2024-12-20T10:55:29",
            "upload_time_iso_8601": "2024-12-20T10:55:29.186301Z",
            "url": "https://files.pythonhosted.org/packages/7f/93/3020331a9a90f212e96bbb8043dfbe7f074f80820a026ca221a5cc83f661/seatools_starter_server_gunicorn-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-20 10:55:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "seatools-py",
    "github_project": "seatools-starter-server-gunicorn",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "seatools-starter-server-gunicorn"
}
        
Elapsed time: 0.75219s