我有一个程序,它启动了一个tweepy streamListener,它将新推文添加到数据库并启动另一个进程,该进程监视所述数据库以查找早于X的推文,并对它们做了一些事情。
下面的代码结构相似,只是没有数据库交互代码,因为它不是导致我问题的原因。
根据我的理解,问题是你不能共享在不同进程之间拥有某种状态的python模块。
我该如何解决这个问题?我需要两个进程才能访问tweepy以进行Twitter交互。
非常感谢任何帮助或想法!
sql = "SELECT * FROM prezzi LIMIT 15 ORDER BY posizione"
运行此操作会产生以下错误
import multiprocessing
import time
import tweepy
class App():
def __init__(self):
keys = {
"consumer_key": "",
"consumer_secret": "",
"access_token": "",
"access_token_secret": ""
}
auth = tweepy.OAuthHandler(keys['consumer_key'], keys['consumer_secret'])
auth.set_access_token(keys['access_token'], keys['access_token_secret'])
self.api = tweepy.API(auth)
self.worker = Worker(self.api)
def run(self):
self.worker.start()
myStreamListener = MyStreamListener()
stream = tweepy.Stream(auth=self.api.auth, listener=myStreamListener)
stream.filter(track=['python'], async=True)
class Worker(multiprocessing.Process):
def __init__(self, api):
multiprocessing.Process.__init__(self)
self.api = api
def run(self):
# Filler for debugging purposes
print(self.api.me(), flush=True)
time.sleep(1)
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
# Filler for debugging purposes
print(status.text, flush=True)
if __name__ == "__main__":
APP = App()
APP.run()