2个sc.rtm_read()实例在python中使用线程不能同时工作

时间:2016-06-28 20:09:44

标签: python multithreading slack-api slack

我正在使用python-slackclient制作一个slackbot。对于每个对话 - 我正在创建一个单独的线程并在其上收听RTM。

但是sc.rtm_read()没有同时运行。它只在main中运行,而不是在线程函数中运行。

import threading
from threading import Thread
from slackclient import SlackClient
import time
token = "xoxb-47823XXXX1-11mYmUuXXXXXXXXXXXXXX"

def other(sc2):
    print "other"
    while True:
        new_evts = sc2.rtm_read()
        for evt in new_evts:
            print "second"
            print evt
            if "type" in evt:
                if evt["type"] == "message" and "text" in evt:    
                    message=evt["text"]
                    print message
            time.sleep(1)


def main():
    sc = SlackClient(token)
    if sc.rtm_connect():
        t1=Thread(target=other,args=(sc,))
        t1.start()
        time.sleep(10)
        while True:
            new_evts = sc.rtm_read()
            for evt in new_evts:
                print evt
                if "type" in evt:
                    if evt["type"] == "message" and "text" in evt:    
                        message=evt["text"]
                        print message
                time.sleep(1)
main()

现在只有其他人的作品。对于main()我收到错误 - " 错误:[Errno 11]资源暂时不可用 &#34 ;.如何让两个rtm_read()都工作?

0 个答案:

没有答案