我有一个服务,依赖于Cassandra优雅地出现,集群正在准备好.
为了确保满足依赖顺序,我有以下单元文件
[Unit]
Requires=cassandra.service
After=cassandra.service
[Service]
Environment=JAVA_HOME=/usr/java/jre
ExecStart=@bringup.instance.path@/webapps/bringup-app/bin/bringup
TimeoutStartSec=0
ExecStop=
PIDFile=@bringup.instance.path@/logs/bringup.pid
Restart=always
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
如何确保启动应用程序进程在尝试启动之前等待30秒?目前虽然它是在Cassandra之后启动的,但我注意到Cassandra集群尚未启动,因此任何来自启动应用程序连接到Cassandra的尝试都会失败.
因此,我想添加一个延迟.这可能通过单位文件?
我正在设计一个管理收藏夹的 RESTful API。每个收藏资源可以包含被视为收藏的一部分的两个项目的详细信息。
HTTP POST /favorites
{ "item1" : "ball",
"item1-ID" : "1",
"item2" : "bat",
"item2-ID" : "2"
}
Run Code Online (Sandbox Code Playgroud)
请原谅基本的 JSON 有效负载。然而,重点是 POST 的语义
上面的 POST 方法创建了一个新的收藏夹资源(包含一个球(ID 1)和一个球棒(ID 2))
我的问题是关于同一 POST 请求被发送两次时的预期行为。第一个请求将创建一个收藏夹(如预期)。发送第二个请求时会发生什么?
1) 用 409 发出错误信号
2) 用 201 表示成功
1) 不是幂等的(就像 POST 一样),而 2) 使 POST 是幂等的。
哪种方法是正确的?
我明白这System.nanoTime()与时代无关(System.currentTimeMillis()尽管与此有关).
从Javadoc开始,它声明返回的值System.nanoTime()是某个任意时间点(甚至可能是未来)的偏移量.
关于这一点
如果假设我运行我的应用程序并将值保存System.nanoTime()到文件中.接下来,我重新执行我的应用程序并计算文件中的值与返回的新值之间的差异System.nanoTime().
那么可以安全地假设差异是执行之间的实际时间量吗?
如果任意时间点保持不变将是如此.
但是我不确定这是否是这种行为