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.1.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.1-py3-none-any.whl (29.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mtmqujing-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 582fbc4f3de9358f1f1dce044ed5abd5848bcc56eabffe0d077eb84db80dcea9
MD5 c217875db11c345b18fc929625c639cc
BLAKE2b-256 ee234787289beaed1c7ae87f55669e1adf4e53d8c5f79046ed7a3b567fbbfc08

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtmqujing-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 29.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 61bccd1771b3e0ef80063de9c7b21505cf8b08f31e5347e1b663d3bc9647c54f
MD5 f5fe9129f0e708fd63df19426bef504f
BLAKE2b-256 79bd7040feba89a521f4e9d2cef30f81d4036445514420ebc038a1411fd120a7

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