| Name | apopy JSON |
| Version |
0.1.6
JSON |
| download |
| home_page | None |
| Summary | Simple Apollo Config Client for Python. |
| upload_time | 2024-10-25 14:22:48 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.9 |
| license | None |
| keywords |
|
| VCS |
|
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# apopy: Simple Apollo Config Client for Python. [](https://pypi.org/project/apopy/)
```bash
pip install apopy
```
## Quick Start
> [!NOTE]
>
> - 示例里的配置信息仅供测试使用,请勿用于生产环境。
> - 具体的配置可能会变动,仅用于说明使用方法,具体的访问方式见
> <https://www.apolloconfig.com/#/zh/README>
```python
from apopy import Client, NamespaceType
client = Client(
config_server_url="http://81.68.181.139:8080",
app_id="apollo-common",
cluster_name="default",
secret="5fdc723621054e0f945cb441561687eb",
ip="192.168.1.4",
)
# 读取 Namespace 为 application 的配置(接口带缓存)
print(client.read_namespace_with_cache(namespace="application"))
# 读取 Namespace 为 application 的配置(接口无缓存)
print(
client.read_namespace_without_cache(
namespace="application", namespace_type=NamespaceType.PROPERTIES
)
)
# 读取配置
print(client.get("test"))
```
### 配置轮训更新
Apopy 提供了内置的针对单独 namespace 配置轮训更新功能,可以通过以下方式实现:
> [!WARNING]
>
> Apopy 本身并没有配置单独的线程锁/进程锁,如果真的需要异步订阅更新,
> 请根据自己的需求在外层加上锁保护。
```python
import time
import threading
def start_background_update(client: Client):
def _update():
while True:
try:
client.read_notification_and_update(
namespace="application", namespace_type=NamespaceType.PROPERTIES
)
except Exception:
pass
finally:
time.sleep(3)
t = threading.Thread(target=_update)
t.start()
start_background_update(client)
while True:
print(client.read_namespace_with_cache(namespace="application"))
time.sleep(5)
```
Raw data
{
"_id": null,
"home_page": null,
"name": "apopy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "ringsaturn <ringsaturn.me@gmail.com>",
"keywords": null,
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/db/0c/a19fd2781b7734dcbca9875d22b9cc3af993ad348323063e8db2a2f3c40b/apopy-0.1.6.tar.gz",
"platform": null,
"description": "# apopy: Simple Apollo Config Client for Python. [](https://pypi.org/project/apopy/)\n\n```bash\npip install apopy\n```\n\n## Quick Start\n\n> [!NOTE]\n>\n> - \u793a\u4f8b\u91cc\u7684\u914d\u7f6e\u4fe1\u606f\u4ec5\u4f9b\u6d4b\u8bd5\u4f7f\u7528\uff0c\u8bf7\u52ff\u7528\u4e8e\u751f\u4ea7\u73af\u5883\u3002\n> - \u5177\u4f53\u7684\u914d\u7f6e\u53ef\u80fd\u4f1a\u53d8\u52a8\uff0c\u4ec5\u7528\u4e8e\u8bf4\u660e\u4f7f\u7528\u65b9\u6cd5\uff0c\u5177\u4f53\u7684\u8bbf\u95ee\u65b9\u5f0f\u89c1\n > <https://www.apolloconfig.com/#/zh/README>\n\n```python\nfrom apopy import Client, NamespaceType\n\nclient = Client(\n config_server_url=\"http://81.68.181.139:8080\",\n app_id=\"apollo-common\",\n cluster_name=\"default\",\n secret=\"5fdc723621054e0f945cb441561687eb\",\n ip=\"192.168.1.4\",\n)\n\n# \u8bfb\u53d6 Namespace \u4e3a application \u7684\u914d\u7f6e\uff08\u63a5\u53e3\u5e26\u7f13\u5b58\uff09\nprint(client.read_namespace_with_cache(namespace=\"application\"))\n\n# \u8bfb\u53d6 Namespace \u4e3a application \u7684\u914d\u7f6e\uff08\u63a5\u53e3\u65e0\u7f13\u5b58\uff09\nprint(\n client.read_namespace_without_cache(\n namespace=\"application\", namespace_type=NamespaceType.PROPERTIES\n )\n)\n\n# \u8bfb\u53d6\u914d\u7f6e\nprint(client.get(\"test\"))\n```\n\n### \u914d\u7f6e\u8f6e\u8bad\u66f4\u65b0\n\nApopy \u63d0\u4f9b\u4e86\u5185\u7f6e\u7684\u9488\u5bf9\u5355\u72ec namespace \u914d\u7f6e\u8f6e\u8bad\u66f4\u65b0\u529f\u80fd\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u5b9e\u73b0\uff1a\n\n> [!WARNING]\n>\n> Apopy \u672c\u8eab\u5e76\u6ca1\u6709\u914d\u7f6e\u5355\u72ec\u7684\u7ebf\u7a0b\u9501/\u8fdb\u7a0b\u9501\uff0c\u5982\u679c\u771f\u7684\u9700\u8981\u5f02\u6b65\u8ba2\u9605\u66f4\u65b0\uff0c\n> \u8bf7\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u5728\u5916\u5c42\u52a0\u4e0a\u9501\u4fdd\u62a4\u3002\n\n```python\nimport time\nimport threading\n\n\ndef start_background_update(client: Client):\n\n def _update():\n while True:\n try:\n client.read_notification_and_update(\n namespace=\"application\", namespace_type=NamespaceType.PROPERTIES\n )\n except Exception:\n pass\n finally:\n time.sleep(3)\n\n t = threading.Thread(target=_update)\n t.start()\n\n\nstart_background_update(client)\nwhile True:\n print(client.read_namespace_with_cache(namespace=\"application\"))\n time.sleep(5)\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Simple Apollo Config Client for Python.",
"version": "0.1.6",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1735b1c11ae2abdb5dfbdfe4dfaa9c70cc97bfd6a276ad8560fb1c3b66e7c7ca",
"md5": "8a2604fa9b02c436ef23396dd432d185",
"sha256": "b54cf931c60ed0d07dd15b3670d8fc32efdf992a09173d20e1509789085e58be"
},
"downloads": -1,
"filename": "apopy-0.1.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8a2604fa9b02c436ef23396dd432d185",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 5160,
"upload_time": "2024-10-25T14:22:46",
"upload_time_iso_8601": "2024-10-25T14:22:46.708971Z",
"url": "https://files.pythonhosted.org/packages/17/35/b1c11ae2abdb5dfbdfe4dfaa9c70cc97bfd6a276ad8560fb1c3b66e7c7ca/apopy-0.1.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "db0ca19fd2781b7734dcbca9875d22b9cc3af993ad348323063e8db2a2f3c40b",
"md5": "b1a949ade31ccc913082bcd6836ac31a",
"sha256": "03af71a6e072f4ac239c42a63b8fdd026f557a152c8864317603ba7d991ab8a5"
},
"downloads": -1,
"filename": "apopy-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "b1a949ade31ccc913082bcd6836ac31a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 11708,
"upload_time": "2024-10-25T14:22:48",
"upload_time_iso_8601": "2024-10-25T14:22:48.273394Z",
"url": "https://files.pythonhosted.org/packages/db/0c/a19fd2781b7734dcbca9875d22b9cc3af993ad348323063e8db2a2f3c40b/apopy-0.1.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-25 14:22:48",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "apopy"
}