跳转到主要内容

支持异步IO和Django的多传输RPC。

项目描述

https://raw.githubusercontent.com/and3rson/radical/master/images/logo.png

描述

关于

Radical是一个RPC库,它允许您实现跨服务通信。

它可以作为Celery的替代品。

Radical与Django有开箱即用的集成,也支持asyncio,但也可以不使用它。

Radical可以很容易地通过自定义传输和序列化器进行扩展。

可用传输

  • Redis

  • Postgres

默认和推荐传输是Redis。

可用序列化器

  • JSON

  • Pickle

默认和推荐序列化器是Pickle。

术语表

术语

含义

服务

使用Django、Sanic或纯Python编写的完全自主的应用程序。

传输

提供实际网络通信接口的模块:例如,Redis传输。

序列化器

提供数据序列化和反序列化接口的模块。

快速开始

安装

pip install radical-rpc

与Django一起使用

  1. 将Radical添加到INSTALLED_APPS

    INSTALLED_APPS = [
        # ...
        'radical',
        # ...
    ]
  2. 配置Radical

    RADICAL_CONFIG = {
        'TRANSPORT_URL': 'redis://redis:6379/0?request_timeout=10',
        'QUEUE_NAME': 'myapp',
        'MODULES': [
            'radical.demo'
        ]
    }
  3. 在任何地方调用它

    from radical.contrib.django import call_wait, call
    from django.http import JsonResponse
    
    def some_view(request):
        # Call remote method and wait for it to return result.
        result = call_wait('myapp', 'radical.demo.add', 1300, 37)
        return JsonResponse(dict(result=result))  # Returns {'result': 1337}
    
    def some_view(request):
        # Call remote method and do not wait for it to finish.
        call('myapp', 'radical.demo.add', 1300, 37)
        return JsonResponse(dict(result='Job was scheduled.'))
  4. 启动Radical工作进程

    ./manage.py radical

项目详情


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于安装包的信息

源分布

radical-rpc-0.1.7.tar.gz (11.8 kB 查看哈希值)

上传时间

由以下机构支持