Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';t pickle\u thread.RLock对象使用redis队列_Python_Redis - Fatal编程技术网

Python Can';t pickle\u thread.RLock对象使用redis队列

Python Can';t pickle\u thread.RLock对象使用redis队列,python,redis,Python,Redis,我正在尝试流式传输推文,并将它们插入带有Redis队列的MySQL中,以处理程序处理速度不够快的情况 我在使用排队时遇到了这个错误。我想原因是我只能放一个函数而不是table.function。但我不知道如何重写它。您试图将开放连接传递到单独的进程,这是不可能的。那么我可以做些什么来实现相同的结果呢?理论上,您可以制作一些简单的API,以某种方式接受字典(如POST请求或通过套接字发送或其他方式)并使用单个连接将其放入数据库。其次,创建一个函数,将字典提供给API,并将该函数传递给redis队列

我正在尝试流式传输推文,并将它们插入带有Redis队列的MySQL中,以处理程序处理速度不够快的情况


我在使用排队时遇到了这个错误。我想原因是我只能放一个函数而不是table.function。但我不知道如何重写它。

您试图将开放连接传递到单独的进程,这是不可能的。那么我可以做些什么来实现相同的结果呢?理论上,您可以制作一些简单的API,以某种方式接受字典(如POST请求或通过套接字发送或其他方式)并使用单个连接将其放入数据库。其次,创建一个函数,将字典提供给API,并将该函数传递给redis队列。您试图将打开的连接传递给单独的进程,这是不可能的。我可以做些什么来实现相同的结果?理论上,您可以制作一些简单的API,以某种方式接受字典第二,创建一个函数,将字典提供给API,并将该函数传递给redis队列。
import tweepy
import dataset
from textblob import TextBlob
from sqlalchemy.exc import ProgrammingError
import pymysql
pymysql.install_as_MySQLdb()
from redis import Redis
from rq import Queue
q = Queue(connection = Redis())
class StreamListener(tweepy.StreamListener):

        def on_status(self, status):
            if status.retweeted:
                return

            text = status.text
            blob = TextBlob(text)
            sent = blob.sentiment
            dictToInsert = dict(
                    text = text,
                    created = status.created_at,
                    id_str = status.id_str,
                    retweet_count = status.retweet_count,
                    polarity = sent.polarity,
                    subjectivity = sent.subjectivity,
                )

            table = db["KeyWordTest"]
            try:
                **result = q.enqueue(table.insert, dictToInsert)**
            except ProgrammingError as err:
                print(err)