Redis
 sql >> база данни >  >> NoSQL >> Redis

Python Reddis Queue ValueError:Функциите от модула __main__ не могат да бъдат обработени от работници

Разбийте предоставения код на два файла:count_words.py :

import requests

def count_words_at_url(url):
    resp = requests.get(url)
    return len(resp.text.split())

и main.py (където ще импортирате необходимата функция):

from rq import Connection, Queue
from redis import Redis
from count_words import count_words_at_url # added import!
redis_conn = Redis()
q = Queue(connection=redis_conn)
job = q.enqueue(count_words_at_url, 'http://nvie.com')
print job

Винаги разделям задачите от логиката, изпълняваща тези задачи към различни файлове. Просто е по-добра организация. Също така имайте предвид, че можете да дефинирате клас задачи и да импортирате/планирате задачи от този клас вместо (прекалено опростената) структура, която предлагам по-горе. Това трябва да ви подтикне.. Вижте също тук, за да потвърдите, че не сте първият, който се бори с този пример. RQ е страхотен след като се овладеете.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Джедаи, не мога да получа връзка с джедаи:не може да получи ресурс от пула

  2. Прескачащи ключове за сканиране на Redis

  3. Използване на redis като кеш за mysql база данни

  4. Как да визуализирате използването на Resque с Node.js, WebSockets и Redis

  5. Съхранение на върнатата стойност на node.js setTimeout в redis