在Python RQ作业中时,我的Redis()会发生什么变化?

在Python RQ作业中时,我的Redis()会发生什么变化?,python,flask,redis,python-rq,Python,Flask,Redis,Python Rq,在我的烧瓶应用程序中,我通常会 from extensions import redis 然后在我的函数中 redis.set('redis:test:queue:increment', 1) 一切都很好 现在我正在尝试安装/理解/使用python RQ,我发现它对我的Redis()做了一些事情,我不能像上面那样在一个名为enqueue()的函数中使用它。上述测试将输出: AttributeError: 'Redis' object has no attribute 'get' 使用SO方

在我的烧瓶应用程序中,我通常会

from extensions import redis
然后在我的函数中

redis.set('redis:test:queue:increment', 1)
一切都很好

现在我正在尝试安装/理解/使用python RQ,我发现它对我的Redis()做了一些事情,我不能像上面那样在一个名为enqueue()的函数中使用它。上述测试将输出:

AttributeError: 'Redis' object has no attribute 'get'
使用SO方法列出附加到对象的所有方法,我看到通过队列,redis对象只有:

['__class__', '__delattr__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_include_public_methods', 'init_app']
其中,在rq之外调用函数会产生预期的:

['__class__', '__delattr__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_include_public_methods', 'append', 'bgrewriteaof', 'bgsave', 'bitcount', 'bitop', 'bitpos', 'blpop', 'brpop', 'brpoplpush', 'client_getname', 'client_kill', 'client_list', 'client_setname', 'config_get', 'config_resetstat', 'config_rewrite', 'config_set', 'dbsize', 'debug_object', 'decr', 'delete', 'dump', 'echo', 'eval', 'evalsha', 'execute_command', 'exists', 'expire', 'expireat', 'flushall', 'flushdb', 'from_url', 'get', 'getbit', 'getrange', 'getset', 'hdel', 'hexists', 'hget', 'hgetall', 'hincrby', 'hincrbyfloat', 'hkeys', 'hlen', 'hmget', 'hmset', 'hscan', 'hscan_iter', 'hset', 'hsetnx', 'hvals', 'incr', 'incrby', 'incrbyfloat', 'info', 'init_app', 'keys', 'lastsave', 'lindex', 'linsert', 'llen', 'lock', 'lpop', 'lpush', 'lpushx', 'lrange', 'lrem', 'lset', 'ltrim', 'mget', 'move', 'mset', 'msetnx', 'object', 'parse_response', 'persist', 'pexpire', 'pexpireat', 'pfadd', 'pfcount', 'pfmerge', 'ping', 'pipeline', 'psetex', 'pttl', 'publish', 'pubsub', 'randomkey', 'register_script', 'rename', 'renamenx', 'restore', 'rpop', 'rpoplpush', 'rpush', 'rpushx', 'sadd', 'save', 'scan', 'scan_iter', 'scard', 'script_exists', 'script_flush', 'script_kill', 'script_load', 'sdiff', 'sdiffstore', 'sentinel', 'sentinel_get_master_addr_by_name', 'sentinel_master', 'sentinel_masters', 'sentinel_monitor', 'sentinel_remove', 'sentinel_sentinels', 'sentinel_set', 'sentinel_slaves', 'set', 'set_response_callback', 'setbit', 'setex', 'setnx', 'setrange', 'shutdown', 'sinter', 'sinterstore', 'sismember', 'slaveof', 'slowlog_get', 'slowlog_len', 'slowlog_reset', 'smembers', 'smove', 'sort', 'spop', 'srandmember', 'srem', 'sscan', 'sscan_iter', 'strlen', 'substr', 'sunion', 'sunionstore', 'time', 'transaction', 'ttl', 'type', 'unwatch', 'watch', 'zadd', 'zcard', 'zcount', 'zincrby', 'zinterstore', 'zlexcount', 'zrange', 'zrangebylex', 'zrangebyscore', 'zrank', 'zrem', 'zremrangebylex', 'zremrangebyrank', 'zremrangebyscore', 'zrevrange', 'zrevrangebyscore', 'zrevrank', 'zscan', 'zscan_iter', 'zscore', 'zunionstore']

请有人帮我了解这里发生了什么。我的队列任务必须能够访问我的redis密钥。

您是否使用Flask redis with Flask以及Flask之外的其他功能?Flask and redis,是的。“烧瓶外”是什么意思?您在RQ中使用的是什么?是从redis导入redis的
?这和你从Flask Redis导入的不是同一个类。我现在有了这个半工作。RQ worker和job_functions.py正在使用从redis导入redis。当我推到heroku时,job_function()正试图连接到本地主机(默认设置),因此我目前正试图找出在启动redis=redis()
import redis
r=redis.from_URL(os.environ.get('REDISCLOUD_URL')时如何指定到REDISCLOUD_URL的连接。
应该会让您朝着正确的方向前进。