Procrastinate:基于PostgreSQL的Python任务队列

22-01-30 banq

Procrastinate 是一个开源的 Python 3.7+ 分布式任务处理库,利用 PostgreSQL 来存储任务定义、管理锁和调度任务。它可以在同步和异步代码中使用。
换句话说,从你的主代码中,你以一种特殊的方式调用特定的函数(任务),而不是在现场运行,它们被安排在现在或将来在别处运行。

# mycode.py
import procrastinate

# Make an app in your code
app = procrastinate.App(connector=procrastinate.AiopgConnector())

# Then define tasks
@app.task(queue="sums")
def sum(a, b):
    with open("myfile", "w") as f:
        f.write(str(a + b))

with app.open():
    # Launch a job
    sum.defer(a=3, b=5)

    # Somewhere in your program, run a worker (actually, it's often a
    # different program than the one deferring jobs for execution)
    app.run_worker(queues=["sums"])


工作者worker将自动运行这个作业,它将创建一个名为myfile的文本文件,其中包含3+5(即8)的结果。
点击标题

猜你喜欢