Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Python Reddis Queue ValueError:Các hàm từ mô-đun __main__ không thể được xử lý bởi worker

Ngắt mã đã cung cấp thành hai tệp: count_words.py :

import requests

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

main.py (nơi bạn sẽ nhập hàm cần thiết):

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

Tôi luôn tách các tác vụ khỏi logic chạy các tác vụ đó thành các tệp khác nhau. Nó chỉ là tổ chức tốt hơn. Cũng lưu ý rằng bạn có thể xác định một lớp nhiệm vụ và nhập / lập lịch tác vụ từ lớp đó thay vì cấu trúc (đơn giản hóa quá mức) mà tôi đề xuất ở trên. Điều này sẽ giúp bạn tiếp tục. Ngoài ra, hãy xem ở đây để xác nhận rằng bạn không phải là người đầu tiên gặp khó khăn với ví dụ này. RQ thật tuyệt khi bạn hiểu rõ.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Heroku Redis - GUI và Tối ưu hóa bộ nhớ

  2. Cách xóa nguyên tử các phím khớp với một mẫu bằng Redis

  3. Redis - bất kỳ cách nào để kích hoạt một sự kiện khi một giá trị không còn được tích cực ghi vào?

  4. Redis - Tập hợp đã sắp xếp, tìm mục theo giá trị thuộc tính

  5. Giảm thời gian thực hiện các công việc của sidekiq