Обновление: Я обнаружил, что не мог пройти класс в enqueue
, возможно ли это сделать?Как передать несущественный Встроенный объект в качестве параметра в django-rq enqueue
Я хочу передать item
объект (модель в Django) в качестве параметра в queue.enqueue(grabber.parse_body, item)
, но rqworker
поднимет этот Exception (как только я попытался передать элемент в качестве параметра, несмотря ли использовать я его):
File "/usr/local/lib/python3.4/dist-packages/rq/job.py", line 53, in unpickle raise UnpickleError('Could not unpickle.', pickled_string, e) rq.exceptions.UnpickleError: ('Could not unpickle.', ImproperlyConfigured('Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.',))
Кажется, что parse_body
не знаю, что item
это?
Я знаю, что я мог бы просто передать идентификатор пункты, в качестве параметра, а затем иметь дело с идентификатором в parse_body
, но это можно использовать item
непосредственно в parse_body
?
Мой главный код: (. enqueue.py
и grabber.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)
grabber.py
def parse_body(item):
print(item)