simqsvr


Namesimqsvr JSON
Version 0.1.3 PyPI version JSON
download
home_pageNone
SummarySIMQ服务器。基于redis的消息队列,通过web接口提供对外服务。
upload_time2024-10-18 02:48:17
maintainerChen Han
docs_urlNone
authorChen Han
requires_pythonNone
licenseApache License, Version 2.0
keywords django
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # simqsvr

SIMQ服务器。基于redis的消息队列,通过web接口提供对外服务。

## 安装

```shell
pip install simqsvr
```

## 接口列表

接口地址 | 接口名称 |
-- | -- |
/simq/api/{channel}/rpush | 添加消息(高优先级) |
/simq/api/{channel}/lpush | 添加消息(低优先级) |
~~/simq/api/{channel}/dpush~~ | ~~添加延迟消息~~ |
/simq/api/{channel}/pop | 获取消息执行 |
/simq/api/{channel}/ack | 确认消息执行完成 |
/simq/api/{channel}/ret | 退还消息 |
/simq/api/{channel}/query | 查询消息详情 |
/simq/api/{channel}/cancel | 取消消息(仅限待处理状态) |
~~/simq/api/{channel}/delete~~ | ~~删除消息~~ |

## 配置项

- SIMQ_MQ_DEFAULT: 默认为default,即django-redis标准添加的CACHES实例名称。
- SIMQ_MQS: 允许按channel使用不同caches实例。
- SIMQ_ACK_EVENT_EXPIRE: 消息处理完成通知过期时间。默认为10分钟。
- SIMQ_DONE_ITEM_EXPIRE: 已处理消息和结果的保存时间。默认为7天。
- SIMQ_APIKEYS: apikey认证密钥。不设置密钥则表示无需认证。
- SIMQ_APIKEY_HEADER: apikey认证请求头名称。默认为apikey。

## 简易使用方法

```shell
# 创建数据库
manage-simqsvr migrate
# 创建超级用户
manage-simqsvr createsuperuser

# 启动服务
manage-simqsvr runserver 0.0.0.0:80 --noreload
```

- 创建数据库&创建超级用户,只是用来登录swagger接口管理界面。
- 如果不需要使用swagger接口管理功能,可以忽略上述两个步骤。

## 注意事项

- simqsvr目前仅支持基于redis的消息队列。
- 必须要按django-redis标准来配置CACHES配置项。如:
    ```python
    # decode_responses=True是必须的
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/0?decode_responses=True",
        }
    }
    ```

## 版本

### 0.1.0

- 版本首发。

### 0.1.3

- 完善容器打包支持。
- 修正swagger默认apikey认证header问题。

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "simqsvr",
    "maintainer": "Chen Han",
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "django",
    "author": "Chen Han",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/a7/b0/ad1ebb2c6068ec4c1268317918088b2371875a73bdc532dee2466f8a1a68/simqsvr-0.1.3.tar.gz",
    "platform": null,
    "description": "# simqsvr\r\n\r\nSIMQ\u670d\u52a1\u5668\u3002\u57fa\u4e8eredis\u7684\u6d88\u606f\u961f\u5217\uff0c\u901a\u8fc7web\u63a5\u53e3\u63d0\u4f9b\u5bf9\u5916\u670d\u52a1\u3002\r\n\r\n## \u5b89\u88c5\r\n\r\n```shell\r\npip install simqsvr\r\n```\r\n\r\n## \u63a5\u53e3\u5217\u8868\r\n\r\n\u63a5\u53e3\u5730\u5740 | \u63a5\u53e3\u540d\u79f0 |\r\n-- | -- |\r\n/simq/api/{channel}/rpush | \u6dfb\u52a0\u6d88\u606f\uff08\u9ad8\u4f18\u5148\u7ea7\uff09 |\r\n/simq/api/{channel}/lpush | \u6dfb\u52a0\u6d88\u606f\uff08\u4f4e\u4f18\u5148\u7ea7\uff09 |\r\n~~/simq/api/{channel}/dpush~~ | ~~\u6dfb\u52a0\u5ef6\u8fdf\u6d88\u606f~~ |\r\n/simq/api/{channel}/pop | \u83b7\u53d6\u6d88\u606f\u6267\u884c |\r\n/simq/api/{channel}/ack | \u786e\u8ba4\u6d88\u606f\u6267\u884c\u5b8c\u6210 |\r\n/simq/api/{channel}/ret | \u9000\u8fd8\u6d88\u606f |\r\n/simq/api/{channel}/query | \u67e5\u8be2\u6d88\u606f\u8be6\u60c5 |\r\n/simq/api/{channel}/cancel | \u53d6\u6d88\u6d88\u606f\uff08\u4ec5\u9650\u5f85\u5904\u7406\u72b6\u6001\uff09 |\r\n~~/simq/api/{channel}/delete~~ | ~~\u5220\u9664\u6d88\u606f~~ |\r\n\r\n## \u914d\u7f6e\u9879\r\n\r\n- SIMQ_MQ_DEFAULT: \u9ed8\u8ba4\u4e3adefault\uff0c\u5373django-redis\u6807\u51c6\u6dfb\u52a0\u7684CACHES\u5b9e\u4f8b\u540d\u79f0\u3002\r\n- SIMQ_MQS: \u5141\u8bb8\u6309channel\u4f7f\u7528\u4e0d\u540ccaches\u5b9e\u4f8b\u3002\r\n- SIMQ_ACK_EVENT_EXPIRE: \u6d88\u606f\u5904\u7406\u5b8c\u6210\u901a\u77e5\u8fc7\u671f\u65f6\u95f4\u3002\u9ed8\u8ba4\u4e3a10\u5206\u949f\u3002\r\n- SIMQ_DONE_ITEM_EXPIRE: \u5df2\u5904\u7406\u6d88\u606f\u548c\u7ed3\u679c\u7684\u4fdd\u5b58\u65f6\u95f4\u3002\u9ed8\u8ba4\u4e3a7\u5929\u3002\r\n- SIMQ_APIKEYS: apikey\u8ba4\u8bc1\u5bc6\u94a5\u3002\u4e0d\u8bbe\u7f6e\u5bc6\u94a5\u5219\u8868\u793a\u65e0\u9700\u8ba4\u8bc1\u3002\r\n- SIMQ_APIKEY_HEADER: apikey\u8ba4\u8bc1\u8bf7\u6c42\u5934\u540d\u79f0\u3002\u9ed8\u8ba4\u4e3aapikey\u3002\r\n\r\n## \u7b80\u6613\u4f7f\u7528\u65b9\u6cd5\r\n\r\n```shell\r\n# \u521b\u5efa\u6570\u636e\u5e93\r\nmanage-simqsvr migrate\r\n# \u521b\u5efa\u8d85\u7ea7\u7528\u6237\r\nmanage-simqsvr createsuperuser\r\n\r\n# \u542f\u52a8\u670d\u52a1\r\nmanage-simqsvr runserver 0.0.0.0:80 --noreload\r\n```\r\n\r\n- \u521b\u5efa\u6570\u636e\u5e93&\u521b\u5efa\u8d85\u7ea7\u7528\u6237\uff0c\u53ea\u662f\u7528\u6765\u767b\u5f55swagger\u63a5\u53e3\u7ba1\u7406\u754c\u9762\u3002\r\n- \u5982\u679c\u4e0d\u9700\u8981\u4f7f\u7528swagger\u63a5\u53e3\u7ba1\u7406\u529f\u80fd\uff0c\u53ef\u4ee5\u5ffd\u7565\u4e0a\u8ff0\u4e24\u4e2a\u6b65\u9aa4\u3002\r\n\r\n## \u6ce8\u610f\u4e8b\u9879\r\n\r\n- simqsvr\u76ee\u524d\u4ec5\u652f\u6301\u57fa\u4e8eredis\u7684\u6d88\u606f\u961f\u5217\u3002\r\n- \u5fc5\u987b\u8981\u6309django-redis\u6807\u51c6\u6765\u914d\u7f6eCACHES\u914d\u7f6e\u9879\u3002\u5982\uff1a\r\n    ```python\r\n    # decode_responses=True\u662f\u5fc5\u987b\u7684\r\n    CACHES = {\r\n        \"default\": {\r\n            \"BACKEND\": \"django_redis.cache.RedisCache\",\r\n            \"LOCATION\": \"redis://127.0.0.1:6379/0?decode_responses=True\",\r\n        }\r\n    }\r\n    ```\r\n\r\n## \u7248\u672c\r\n\r\n### 0.1.0\r\n\r\n- \u7248\u672c\u9996\u53d1\u3002\r\n\r\n### 0.1.3\r\n\r\n- \u5b8c\u5584\u5bb9\u5668\u6253\u5305\u652f\u6301\u3002\r\n- \u4fee\u6b63swagger\u9ed8\u8ba4apikey\u8ba4\u8bc1header\u95ee\u9898\u3002\r\n",
    "bugtrack_url": null,
    "license": "Apache License, Version 2.0",
    "summary": "SIMQ\u670d\u52a1\u5668\u3002\u57fa\u4e8eredis\u7684\u6d88\u606f\u961f\u5217\uff0c\u901a\u8fc7web\u63a5\u53e3\u63d0\u4f9b\u5bf9\u5916\u670d\u52a1\u3002",
    "version": "0.1.3",
    "project_urls": null,
    "split_keywords": [
        "django"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "714ad848fdf2e19c966d4598506347199122aea7d2b5372381ad79093ffcdc33",
                "md5": "3fbb15f77c66a4b5673224408ec6a1eb",
                "sha256": "690221ad3965cf004228bc39c5ea247b663c6f1f568bd44ceeb3e5593cda4675"
            },
            "downloads": -1,
            "filename": "simqsvr-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3fbb15f77c66a4b5673224408ec6a1eb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 15552,
            "upload_time": "2024-10-18T02:48:15",
            "upload_time_iso_8601": "2024-10-18T02:48:15.745519Z",
            "url": "https://files.pythonhosted.org/packages/71/4a/d848fdf2e19c966d4598506347199122aea7d2b5372381ad79093ffcdc33/simqsvr-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a7b0ad1ebb2c6068ec4c1268317918088b2371875a73bdc532dee2466f8a1a68",
                "md5": "3661b56ea359dea66d8af18f844fd3d8",
                "sha256": "7308cc5e7d6f99ceef7628b3a1171c3240c19942f7e526e3ed97a33cc67eb80f"
            },
            "downloads": -1,
            "filename": "simqsvr-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "3661b56ea359dea66d8af18f844fd3d8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 14627,
            "upload_time": "2024-10-18T02:48:17",
            "upload_time_iso_8601": "2024-10-18T02:48:17.610672Z",
            "url": "https://files.pythonhosted.org/packages/a7/b0/ad1ebb2c6068ec4c1268317918088b2371875a73bdc532dee2466f8a1a68/simqsvr-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-18 02:48:17",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "simqsvr"
}
        
Elapsed time: 1.83484s