Skip to main content

Universal Job Queue 或简称 UJQ 是一个基于 Redis 的 Simple MultiPlatform Job 管理库构建。这个库是轻量级的,是为使用微服务而构建的。

项目描述

UJQ

Universal Job Queue 或简称 UJQ 是一个基于 Redis 的 Simple MultiPlatform Job 管理库。这个库是轻量级的,是为使用微服务而构建的。目前我们有库的 Node 和 Python 实现。C# 和 Java 正在开发中。

好处

  1. 作业可以由不同的应用程序或服务创建和处理
  2. 创建作业时自动触发
  3. 作业完成和错误指示

Python

单击此处获取 Node.js 包

安装 UJQ

可以使用 PIP 安装

pip install ujq

连接到 Redis

使用以下连接redis

from ujq import ujq
import json

UJQ = ujq(host="127.0.0.1",port=6379)
UJQ.connect()
    

创建新作业

以下代码将创建一个新作业

id = UJQ.createJob('Test_100',{"test":"test45y76475"})
print(id)
    

关于创建新工作

下面的代码将在工作上工作并返回一个状态

def callback (message,complete):
    print(json.dumps(message))
    complete({'status':True,"DummyData":"blablabla"},False)

UJQ.onCreated('Test_100',callback)

如果出现错误,可以将 false 标记设置为 true...调用完成回调将完成作业并将从队列中移出...

工作完成时

result = UJQ.onCompleted(id)
print(result)

上面的代码将完成这项工作。

运行作业

为 UJQ 版本 2 及更高版本创建了一个新方法来运行,它结合了 createJob 和 onCompleted

result = UJQ.runJob('Test_100',{"test":"test45y76475"})
print(result)

用UJQ快递

如图所示,在 Node.js 中使用 Python 中的 UJQ 实现 Express 的简单实现

使用以下代码创建一个Server.js

const express = require("express")
const UJQ = require("ujq")
const ujq = new UJQ({ port: "6379", host: "127.0.0.1" })
const app = express()
const port = 3000

  ujq.connect()
    .then(() => {
        app.get('/', (req, res) => {

            ujq.createJob("test_q2", { test: "sample Data" })

                //Set On Complete
                .then((result) => ujq.onCompleted(result.id))

                //Send Result
                .then((result) => res.send(result))
    })
    
}).catch((e) => console.log(e))

app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))

现在使用以下代码创建Worker.py

 ujq 导入 ujq
导入 json

def callback (message,complete):
    print(json.dumps(message))
    complete({'status':True,"DummyData":"blablabla"},False)

UJQ.onCreated('Test_100',callback)

运行这两个文件并享受:B

新的 onError 方法

此方法将在redis断开连接期间处理错误

UJQ.onError(lambda x:run())

项目详情


下载文件

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

源分布

ujq-2.0.1.tar.gz (5.1 kB 查看哈希

已上传 source