小编Jam*_*ill的帖子

何时以及为什么要使用NSUserDefaults的synchronize()方法?

所以我看了一下NSUserDefaults的synchronize()方法上的苹果文档.见下面的参考:

https://developer.apple.com/reference/foundation/userdefaults/1414005-synchronize

该页面目前为:

因为此方法是定期自动调用的,所以只有在您无法等待自动同步时(例如,如果您的应用程序即将退出)或者您希望将用户默认值更新为磁盘上的内容,请使用此方法你没有做任何改变.

但是,我仍然不明白这个方法什么时候应该被调用?例如,每次用户更改应用程序的设置时是否应该调用它?或者我应该相信后台api会处理它?并且在内存中的设置更改后立即离开视图会导致更改丢失吗?

此外,如果调用synchronize()失败,导致用户设置无法正确更改?

此外,调用此方法的成本(性能,内存或其他)是多少?我知道它涉及从磁盘读取和写入磁盘,但这真的需要花费很多精力在手机上吗?

performance nsuserdefaults ios

9
推荐指数
3
解决办法
2184
查看次数

由于 Puma 工作线程超时,Pry 会话超时

每当我binding.pry在本地运行应用程序时,我都会像往常一样进入 pry 会话,但是大约一分钟后,我在服务器输出中看到了类似的内容。 [54438] ! Terminating timed out worker: 54455

然后服务器似乎在循环中运行了一两秒钟(重新运行导致 pry 会话的查询)并且我从同一个返回到一个新的 pry 会话binding.pry,除了在这个新的 pry 会话中,每当我输入我可以'看不到我正在输入的任何内容。解决此问题的唯一方法是退出服务器并重新启动。

我试过在我的config/puma.rb文件中插入以下行,但似乎没有任何区别。 worker_timeout 900 if ENV["RACK_ENV"] == "development"

唯一有效的是在我的 .env 文件中将 puma 工人的数量设置为 0。例如 PUMA_WORKERS=0

有没有办法解决这个问题,而不是仅仅消除所有美洲狮工人?

ruby ruby-on-rails pry puma

6
推荐指数
1
解决办法
1233
查看次数

ElasticsearchSecurityException:xpack.security.transport.ssl 的配置无效

尝试在 EC2 中启动 elasticsearch 集群时出现以下错误。

org.elasticsearch.ElasticsearchSecurityException: xpack.security.transport.ssl 的配置无效 - 未设置 [xpack.security.transport.ssl.enabled],但在 elasticsearch.yml 中配置了以下设置: [xpack.security.transport .ssl.keystore.secure_password,xpack.security.transport.ssl.truststore.secure_password]

这是我用来引导集群的脚本

"#!/bin/bash",
"sudo yum update -y",
"sudo yum install java-1.8.0 -y",
"sudo rpm -i https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${var.elastic_version}-x86_64.rpm",
"sudo systemctl daemon-reload",
"sudo systemctl enable elasticsearch.service",
"sudo chmod -R 777 /etc/elasticsearch",
"sudo sed -i 's@-Xms1g@-Xms${aws_instance.elastic_datanodes[count.index].root_block_device[0].volume_size / 2}g@g' /etc/elasticsearch/jvm.options",
"sudo sed -i 's@-Xmx1g@-Xmx${aws_instance.elastic_datanodes[count.index].root_block_device[0].volume_size / 2}g@g' /etc/elasticsearch/jvm.options",
# "sudo sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/g' /etc/elasticsearch/elasticsearch.yml",
"sudo rm /etc/elasticsearch/elasticsearch.yml",
"sudo cp elasticsearch.yml /etc/elasticsearch/elasticsearch.yml",
"sudo systemctl start elasticsearch.service"
Run Code Online (Sandbox Code Playgroud)

这是我的elasticsearch yml

# ======================== Elasticsearch …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

4
推荐指数
1
解决办法
5987
查看次数