sql >> Database >  >> NoSQL >> Redis

Python Reddis Queue ValueError:Functies van de __main__-module kunnen niet worden verwerkt door werknemers

Breek de verstrekte code in twee bestanden:count_words.py :

import requests

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

en main.py (waar u de vereiste functie importeert):

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

Ik scheid de taken altijd van de logica die die taken uitvoert naar verschillende bestanden. Het is gewoon een betere organisatie. Merk ook op dat je een klasse van taken kunt definiëren en taken uit die klasse kunt importeren/plannen in plaats van de (te vereenvoudigde) structuur die ik hierboven voorstel. Dit zou je op weg moeten helpen.. Zie ook hier om te bevestigen dat je niet de eerste bent die worstelt met dit voorbeeld. RQ is geweldig als je het eenmaal onder de knie hebt.



  1. Hoe CouchDB op Debian 10 te installeren

  2. 3 manieren om documenten te sorteren in MongoDB

  3. object in array-schema in Mongoose duwen

  4. Inleiding tot MongoDB-gegevenstypen