Podziel dostarczony kod na dwa pliki:count_words.py :
import requests
def count_words_at_url(url):
resp = requests.get(url)
return len(resp.text.split())
i main.py (gdzie zaimportujesz wymaganą funkcję):
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
Zawsze oddzielam zadania od logiki uruchamiającej te zadania do różnych plików. To po prostu lepsza organizacja. Zauważ również, że możesz zdefiniować klasę zadań i importować/planować zadania z tej klasy zamiast (nadmiernie uproszczonej) struktury, którą sugeruję powyżej. To powinno Cię zachęcić. Zobacz również tutaj, aby potwierdzić, że nie jesteś pierwszym, który zmaga się z tym przykładem. RQ jest świetne kiedy już to zrozumiesz.