Skip to main content

Description

Project description

mtmqujing

一个用于调用远程服务的Python客户端库,支持同步和异步两种调用方式。

安装

基础安装(仅同步功能):

pip install mtmqujing

包含异步功能的完整安装:

pip install mtmqujing[async]

或者单独安装异步依赖:

pip install aiohttp>=3.8.0

使用方法

同步版本

from mtmqujing import QujingByHttp

# 创建客户端
client = QujingByHttp(host="localhost", port_config=61000)

# 获取包的进程ID
packages = ["your_package"]
ports = client.get_pid(packages)
print(f"端口信息: {ports}")

# 设置目标应用
result = client.set_app(packages)
print(f"设置结果: {result}")

# 调用远程函数
if ports:
    port = list(ports.values())[0]
    data = {"function": "your_function", "args": {"param": "value"}}
    response = client.invoke(port, data)
    print(f"调用结果: {response}")

异步版本

import asyncio
from mtmqujing import AsyncQujingByHttp

async def main():
    # 创建异步客户端
    client = AsyncQujingByHttp(host="localhost", port_config=61000)
    
    # 异步获取包的进程ID
    packages = ["your_package"]
    ports = await client.get_pid(packages)
    print(f"端口信息: {ports}")
    
    # 异步设置目标应用
    result = await client.set_app(packages)
    print(f"设置结果: {result}")
    
    # 异步调用远程函数
    if ports:
        port = list(ports.values())[0]
        data = {"function": "your_function", "args": {"param": "value"}}
        response = await client.invoke(port, data)
        print(f"调用结果: {response}")

# 运行异步函数
asyncio.run(main())

并发调用(异步版本的优势)

import asyncio
from mtmqujing import AsyncQujingByHttp

async def concurrent_calls():
    client = AsyncQujingByHttp(host="localhost", port_config=61000)
    
    # 同时发起多个异步调用
    packages_list = [["package1"], ["package2"], ["package3"]]
    tasks = [client.get_pid(packages) for packages in packages_list]
    results = await asyncio.gather(*tasks)
    
    print(f"并发调用结果: {results}")

asyncio.run(concurrent_calls())

API 文档

QujingByHttp (同步版本)

__init__(host, port_config=61000, protocol="http")

初始化客户端。

  • host: 服务器地址
  • port_config: 配置端口,默认61000
  • protocol: 协议,默认"http"

get_pid(packages, **kwargs)

获取包名对应的进程号(端口号)。

  • packages: 包名列表
  • 返回: 字典,包名到端口号的映射

set_app(packages, **kwargs)

设置目标应用。

  • packages: 包名列表
  • 返回: 布尔值,表示是否设置成功

invoke(port_invoke, data, **kwargs)

调用目标应用的函数。

  • port_invoke: 调用端口
  • data: 调用数据
  • 返回: 字典,包含响应数据和数据类型

AsyncQujingByHttp (异步版本)

异步版本的API与同步版本完全相同,只是所有方法都是异步的(需要使用await关键字)。

数据转换工具

库还提供了FormatConvert类用于各种数据格式转换:

from mtmqujing.convert import FormatConvert

# Base64编码/解码
encoded = FormatConvert.bytes2base64(b"hello")
decoded = FormatConvert.base642bytes(encoded)

# JSON与字符串转换
json_str = FormatConvert.json2str({"key": "value"})
data = FormatConvert.str2json(json_str)

# Base64与JSON转换
b64_json = FormatConvert.json2base64({"key": "value"})
json_data = FormatConvert.base642json(b64_json)

# Gzip压缩相关转换
compressed = FormatConvert.gzip_json_to_base64({"key": "value"})
decompressed = FormatConvert.ungzip_base64_to_json(compressed)

错误处理

当调用失败时,会抛出QujingInvokeError异常:

from mtmqujing.exceptions import QujingInvokeError

try:
    response = client.invoke(port, data)
except QujingInvokeError as e:
    print(f"调用失败: {e}")

许可证

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mtmqujing-0.2.0.tar.gz (44.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mtmqujing-0.2.0-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file mtmqujing-0.2.0.tar.gz.

File metadata

  • Download URL: mtmqujing-0.2.0.tar.gz
  • Upload date:
  • Size: 44.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mtmqujing-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0c502215e9ecfe0697e9e3caba0ff6eecc5e1005c805b0e0d142a489bee88f4a
MD5 9b469741d12a54c1d87bbb0eb671a4e7
BLAKE2b-256 067e2ffb8ed9f508b527aba2c07ed3dd23f6df0b26d01e86dce3780b5f9ac7c2

See more details on using hashes here.

File details

Details for the file mtmqujing-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: mtmqujing-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mtmqujing-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c2339655630d57793cc6d07fcb5f4d92c48bdca48f7aaa4b39aac266e8e242a4
MD5 cd43473b1a276f0a0ba5971ef8876907
BLAKE2b-256 3d9260e53ec6f67af918c402a7af83af2b512d3b0d6275075eb7493418b622c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page