概要
kwargs を使ってワーカー側は受け取ることができるので特定の enqueue_in を判定するときなどに使えそうです
環境
- Python 3.11.3
- rq-scheduler 0.13.1
サンプルコード
- vim app.py
from datetime import timedelta
from redis import Redis
from rq import Queue
from rq_scheduler import Scheduler
from my_lib.util import Message
queue = Queue("default", connection=Redis())
scheduler = Scheduler(queue=queue, connection=queue.connection)
scheduler.enqueue_in(timedelta(seconds=5), Message().say, msg="hello")
- vim my_lib/util.py
class Message:
def say(self, **kwargs):
print(kwargs)
最後に
AttributeError: Can't get attribute 'Message' on <module '__main__' from '/home/user01/.local/share/virtualenvs/python-T6UYzsfV/bin/rqscheduler'>
という感じのエラーになる場合は enqueue_in する際のメソッドを素直にモジュール化しましょう
今回であれば my_lib/__init__.py
の設置も忘れずに行いましょう
0 件のコメント:
コメントを投稿