sql >> データベース >  >> NoSQL >> Redis

Python ReddisキューValueError:__main__モジュールの関数をワーカーで処理できません

    提供されたコードを2つのファイルに分割します: count_words.py

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

    およびma​​in.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. Node.js-セッションはres.redirect()を介して持続しません

    2. マシンIPを使用してmongodbに接続できません

    3. TwitterのストリーミングAPIからツイートを消費してmongodbに保存するにはどうすればよいですか?

    4. Meteor:コレクション、変数、パブリケーション、サブスクリプションの名前の違いは?