0

更新: でクラスを渡すことさえできないことがわかりましたenqueue。これを行うことは可能ですか?


itemでオブジェクト (Django のモデル) をパラメーターとして渡したいのですqueue.enqueue(grabber.parse_body, item)が、rqworkerこの例外が発生します (使用するかどうかにかかわらず、アイテムをパラメーターとして渡そうとすると):

ファイル "/usr/local/lib/python3.4/dist-packages/rq/job.py"、53 行目、unpickle で UnpickleError('Could not unpickle.', pickled_string, e) rq.exceptions.UnpickleError: ( 'Could unpickle.', ImproperlyConfigured('INSTALLED_APPS の設定を要求しましたが、設定が構成されていません。設定にアクセスする前に、環境変数 DJANGO_SETTINGS_MODULE を定義するか、settings.configure() を呼び出す必要があります。',))

それparse_bodyが何であるかわからないようitemですか?

アイテムの id をパラメーターとして渡してから、 で id を処理できることはわかっていますが、これをで直接parse_body使用することは可能ですか?itemparse_body


私のメインコード: (enqueue.pygrabber.pyは独立したスクリプトであり、Django アプリではありません。)

enqueue.py

import os
import grabber
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "website.settings.development")

queue = django_rq.get_queue('default')
need_to_parse = Post.objects.all()
    for item in need_to_parse:
        queue.enqueue(grabber.parse_body, item)

グラバー.py

def parse_body(item):
    print(item)
4

2 に答える 2