Google App引擎是否支持多线程?我在网上看到有冲突的报道。Google应用引擎上的多线程
基本上,我正在与苹果推送通知服务器(APNS)进行通信的模块。它使用一个工作者线程,不断查找需要推送到拉队列中的客户端设备的新消息。
它得到一个消息,并将其发送给APNS后,我希望它启动另一个线程来检查,如果APNS在发送回任何错误响应。基本上,在同一套接字上查找传入字节(它只能是每个APNS规范的错误响应)。如果从主线程中最后一条消息发送时间起60秒内没有任何内容出现,则错误响应线程将终止。
虽然这种“错误响应处理程序”线程正在等待来自APNS字节(使用选择的插座上),我想主线程继续看拉入队列,并发送马上来的任何数据包。
我试图启动一个后台线程来执行错误响应处理的功能。但是这并不像预期的那样工作,因为线程是连续执行的。只有在错误响应线程完成60秒等待后,I.e控件才会返回到主线程。所以,如果有消息在这段时间内到达,他们就坐在队列中。
我试过线程:假的.yaml
我的问题是:
有什么办法有真正的多线程在GAE。 I.e主线程和错误响应线程在上面的例子中并行执行,而不是强迫其他人执行时等待?
如果没有,有没有解决我试图解决这个问题?我尝试启动一个新实例来处理错误响应(基本上使用推送队列),但我不知道如何传递错误响应线程必须监听的套接字对象作为此推送队列任务的参数(因为莳萝不支持序列化套接字对象)
号线程是在前端要求提供,但是当请求完成请求创建所有线程都完成了,你有60秒的最后期限。如果阻塞操作(即网络数据存储),线程将同时运行。但是,如果你看起来最appengine API允许异步方法。还有其他的方式来实现你想要的。使用任务队列来管理你的拉队列。 app.yaml中的Threadsafe选项意味着单个实例可以处理并发请求 - 为每个请求提供线程。 –