我正在尝试在芹菜上执行任务,然后在开销不到10毫秒的情况下阻止它的结果。
自包含示例(tasks.py):
from celery import Celery
app = Celery('tasks', broker='librabbitmq://guest@localhost//', backend='amqp')
@app.task
def add(x, y):
return x + y
测试脚本:
from timeit import timeit
from tasks import add
def f():
add.delay(2, 2).get()
timeit(f, number=100)
在我的i5 8GB ram debian linux机器上,每次请求运行大约40ms。
恕我直言,因为芹菜的后端依赖于轮询,所以不适合低延迟要求吗?
解决方案需要提供不到10毫秒的RTT开销,大约4台机器每秒添加一次任务,大约2名任务工作人员实际执行任务。