sql >> Database teknologi >  >> NoSQL >> Redis

Python Reddis Queue ValueError:Funktioner fra __main__-modulet kan ikke behandles af arbejdere

Bryd den medfølgende kode til to filer:count_words.py :

import requests

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

og main.py (hvor du vil importere den nødvendige funktion):

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

Jeg adskiller altid opgaverne fra logikken, der kører disse opgaver, til forskellige filer. Det er bare en bedre organisation. Bemærk også, at du kan definere en klasse af opgaver og importere/planlægge opgaver fra den pågældende klasse i stedet for den (over-simplificerede) struktur, jeg foreslår ovenfor. Dette burde få dig i gang. Se også her for at bekræfte, at du ikke er den første, der kæmper med dette eksempel. RQ er fantastisk når du først får styr på det.



  1. Sådan installeres Redis

  2. Hvordan gemmer og afslutter redis.conf?

  3. MongoDB:Tæller hvor mange af hver adskilte værdier der er?

  4. Kommunikation mellem to Docker-containere på macOS 10.12