是否可以在某个时间点停止twython流媒体?

时间:2013-09-18 01:35:58

标签: python django twython

我有twython流媒体的代码,它正在运行。

def read_cred(file):  in_handle = open(文件,'r')

cred = {}
for ln in in_handle:
    data = ln.strip('\r\n').split('=')
    if len(data) > 1:
        key = data[0].strip(' ').lower()
        value = data[1].strip(' ')
        cred[key] = value
    else:
        print "error in parsing credentials file"
return cred

cred = read_cred(sys.argv [1])

类MyStreamer(TwythonStreamer):     def on_success(self,data):     动作(数据)

def on_error(self, status_code, data):
    print status_code, data

stream = MyStreamer(cred ['consumer_key'],cred ['consumer_secret'],                     cred ['access_token_key'],cred ['access_token_secret'])

keywords = sys.argv [2]

stream.statuses.filter(轨道=关键字)

但是,我想在django框架中创建一个由'start'和'stop'按钮组成的UI。当我点击“停止”按钮时,我该怎么做才能停止twython流媒体?可以给我一些简单的例子吗?

2 个答案:

答案 0 :(得分:0)

只要停止按钮绑定到应用程序的其余部分(我没有使用Django,所以我不能提供一个简单的例子)然后调用sys.exit()应该完成这项工作。

Django可能有一些其他方法来终止内置的进程或其文档中的一些特定示例。你应该检查一下以确认这个答案。

答案 1 :(得分:0)

您可以使用Twython文档中描述的disconnect()函数 - https://twython.readthedocs.org/en/latest/api.html#twython.TwythonStreamer.disconnect

    def on_stop(self, status_code, data):
            self.disconnect()
    def on_start(keywords):
            stream = MyStreamer(cred['consumer_key'], cred['consumer_secret'],
                     cred['access_token_key'], cred['access_token_secret'])
            stream.statuses.filter(track=keywords)