我想使用 rq 对我的 ml 预测进行排队。示例代码(伪ish):
predict.py
:
import tensorflow as tf
def predict_stuff(foo):
model = tf.load_model()
result = model.predict(foo)
return result
app.py
:
from rq import Queue
from redis import Redis
from predict import predict_stuff
q = Queue(connection=Redis())
for foo in baz:
job = q.enqueue(predict_stuff, foo)
worker.py
:
import sys
from rq import Connection, Worker
# Preload libraries
import tensorflow as tf
with Connection():
qs = sys.argv[1:] or ['default']
w = Worker(qs)
w.work()
我已经阅读了 rq 文档,解释说您可以预加载库以避免每次运行作业时都导入它们(因此在示例代码中,我在工作代码中导入 tensorflow)。但是,我还想移动模型加载,predict_stuff
以避免每次工作人员运行作业时加载模型。我该怎么办?