Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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
Multithreading Firebase是否使用App Engine在Java Server SDK上处理线程?_Multithreading_Google App Engine_Servlets_Firebase_Firebase Realtime Database - Fatal编程技术网

Multithreading Firebase是否使用App Engine在Java Server SDK上处理线程?

Multithreading Firebase是否使用App Engine在Java Server SDK上处理线程?,multithreading,google-app-engine,servlets,firebase,firebase-realtime-database,Multithreading,Google App Engine,Servlets,Firebase,Firebase Realtime Database,我有这样的设置: 客户端实时数据库AppEngine服务器 AppEngine服务器在servlet init()方法中有一些代码 每当客户端更新firebase中的某个节点时,AppEngine都将侦听此更改,并执行一些处理和更新其他一些节点 此设置用于测试,因为我是单用户。但是如果有100人在使用这个应用呢?我是否保证这个childEventListener将为每个用户运行代码?这些嵌套的SingleValueEventListener也会触发吗 或者我必须在每个不同的firebase请求上

我有这样的设置:

客户端实时数据库AppEngine服务器

AppEngine服务器在servlet init()方法中有一些代码

每当客户端更新firebase中的某个节点时,AppEngine都将侦听此更改,并执行一些处理和更新其他一些节点

此设置用于测试,因为我是单用户。但是如果有100人在使用这个应用呢?我是否保证这个childEventListener将为每个用户运行代码?这些嵌套的SingleValueEventListener也会触发吗

或者我必须在每个不同的firebase请求上创建线程?或者这一切都由Firebase Java Server SDK负责


另外,init()方法是放置ChildEventListeners的正确位置吗?我可以添加类似于。。。应用程序引擎firebase上有10个侦听器?

使用后台线程侦听firebase上的更改。通过添加ChildEventListener,您可以在后台创建一个新的长寿线程,该线程将为您处理所有事情,无需担心,也可以创建一个新线程等。无论是谁做了这些更改,firebase中的更改都会触发该线程(您的任何用户都可以这样做)。但要在应用程序引擎上使用长寿命后台线程,需要启用手动缩放,这意味着只有一个后端实例将运行。它将处理尽可能多的请求,因此您的后端可以处理每秒的固定更改限制。

在应用程序引擎firebase上,firebase使用后台线程侦听firebase上的更改。通过添加ChildEventListener,您可以在后台创建一个新的长寿线程,该线程将为您处理所有事情,无需担心,也可以创建一个新线程等。无论是谁做了这些更改,firebase中的更改都会触发该线程(您的任何用户都可以这样做)。但要在应用程序引擎上使用长寿命后台线程,需要启用手动缩放,这意味着只有一个后端实例将运行。它将处理尽可能多的请求,因此后端可以处理每秒的固定更改限制。

我有一个类似的应用程序正在运行,我们已经使用它好几个月了。我不建议您为此使用appEngine标准环境,因为它不准备保持持久连接(我们是这样开始的)

因此,有时我们会与firebase失去联系,在进行一些研究后,我们发现这是一个常见的问题。解决此问题的唯一方法是将服务器迁移到灵活的环境中

这是一个beta版本,我不确定未来的定价,但只要它能与我们的应用程序配合使用就行了


希望这对你有帮助

我有一个类似的应用程序,我们已经使用了几个月了。我不建议您为此使用appEngine标准环境,因为它不准备保持持久连接(我们是这样开始的)

因此,有时我们会与firebase失去联系,在进行一些研究后,我们发现这是一个常见的问题。解决此问题的唯一方法是将服务器迁移到灵活的环境中

这是一个beta版本,我不确定未来的定价,但只要它能与我们的应用程序配合使用就行了

希望这对你有帮助

@Override
public void init(ServletConfig sc) throws ServletException {
  // Setup Firebase....
  firebase.addChildEventListener(..nested SingleValueEventListener..);
}