この質問と同様に、同じファイルで定義された関数を python-rq に送信する方法はありますか? このための新しい質問を作成するように私に依頼した@GG_Python。
使用例:
# somemodule.py
from redis import Redis
from rq import Queue
def somefunc():
do_something()
q = Queue(connection=Redis('redis://redis'))
q.enqueue(somefunc)
はい、答えは someothermodule.py で somefunc を定義し、次に上記のスニペットで定義することだと知っていますが、from someothermodule import somefunc
本当にそうしたくありません。形式にこだわりすぎているのかもしれませんが、somefunc は実際にはキューに入れられるのと同じファイルに属します (実際には、somefunc は docker コンテナー名を取得してそれを生成します)。2 つのモジュールを使用するのではなく、全体を自己完結型にしたいと考えています。
python-rq のソース コードを調べてみると、Queue.enqueue は実際のモジュールではなく実際に文字列を受け取ることができることに気付きましたsomemodule.somefunc
。何か案は?