Я хочу поставить в очередь свои прогнозы ml, используя rq. Пример кода (pesudo-ish):
predict.py
* * 1004
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 docs, в которых объясняется, что вы можете предварительно загружать библиотеки, чтобы избежать их импорта при каждом запуске задания (поэтому в примере кода я импортирую тензор потока в рабочий код). Однако я также хочу перенести загрузку модели из predict_stuff
, чтобы избежать загрузки модели каждый раз, когда работник выполняет задание. Как я могу это сделать?