Playframework 如何获得play框架的启动时间?
我需要检索播放框架的启动时间。我添加了代码来获取全局函数中onStart方法的启动时间。但是,它仅在收到第一个请求时收集启动时间 我需要的是 1.获取播放框架(web服务器)启动的时间。Playframework 如何获得play框架的启动时间?,playframework,Playframework,我需要检索播放框架的启动时间。我添加了代码来获取全局函数中onStart方法的启动时间。但是,它仅在收到第一个请求时收集启动时间 我需要的是 1.获取播放框架(web服务器)启动的时间。 2.是否有API可供我获取物理服务器的启动时间 您可以使用playframework的日志。 获取与数据库连接时的信息 2014-03-01 11:02:02INFO~连接到jdbc的数据库[默认值]:mysql://192.168.1.6:3306/databasename 还有许多类似于异常和错误,它们与您
2.是否有API可供我获取物理服务器的启动时间 您可以使用playframework的日志。 获取与数据库连接时的信息
2014-03-01 11:02:02
INFO~连接到jdbc的数据库[默认值]:mysql://192.168.1.6:3306/databasename
还有许多类似于异常和错误,它们与您的游戏框架有关。
我的日志文件
2014-03-01 11:12:02 INFO ~ Stopping server...
2014-03-01 11:17:39 WARN ~ releaseHelperThreads has been deprecated -- it tends to slow down your application more.
2014-03-01 11:17:39 WARN ~ releaseHelperThreads has been deprecated -- it tends to slow down your application more.
2014-03-01 11:17:39 WARN ~ releaseHelperThreads has been deprecated -- it tends to slow down your application more.
2014-03-01 11:17:39 WARN ~ releaseHelperThreads has been deprecated -- it tends to slow down your application more.
2014-03-01 11:17:40 INFO ~ database [default] connected at jdbc:mysql://192.168.1.6:3306/databasename
2014-03-01 11:17:40 INFO ~ Application started (Prod)
2014-03-01 11:17:40 INFO ~ Listening for HTTP on /0:0:0:0:0:0:0:0:9000
2014-03-01 11:18:04 INFO ~ Shutting down connection pool...
2014-03-01 11:18:04 INFO ~ Connection pool has been shutdown.
2014-03-01 11:18:04 INFO ~ Shutting down connection pool...
2014-03-01 11:18:04 INFO ~ Connection pool has been shutdown.
2014-03-01 11:18:04 INFO ~ Shutting down connection pool...
2014-03-01 11:18:04 INFO ~ Connection pool has been shutdown.
2014-03-01 11:18:04 INFO ~ Shutting down connection pool...
2014-03-01 11:18:04 INFO ~ Connection pool has been shutdown.
2014-03-01 11:18:04 ERROR ~ Error while stopping logger
您的应用程序在第一次请求后启动,因为您是在开发模式下启动的,而不是在生产模式下启动的,不是吗 在这种情况下,Play始终等待第一个请求。如果您将使用
播放开始
启动应用程序,它将在不等待请求的情况下尽快调用开始前
和开始时
方法
如果您还想测量下载依赖项和编译所需的时间,我会使用ie。一些shell脚本,它首先会创建一些文件,如start.txt
,然后使用play start
运行您的应用程序。接下来,在onStart
中,您可以比较当前时间和文件创建时间之间的时间
获取物理服务器的正常运行时间取决于操作系统,因此您需要另外搜索当前机器。i、 e.对于Linuxes,如果您不介意它只在开发机器上工作,但在部署时工作,那么它可能是。您可以使用我正在使用的解决方案:
import org.joda.time.DateTime;
import org.joda.time.Period;
import org.joda.time.format.PeriodFormatter;
import org.joda.time.format.PeriodFormatterBuilder;
import play.Logger;
import play.mvc.Controller;
import java.io.File;
public class ControllerWithUptime extends Controller {
private static DateTime launched = null;
public static String getUpTime() {
final Period period = new Period(getLaunched(), DateTime.now());
final PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendYears().appendSuffix(" years, ")
.appendMonths().appendSuffix(" months, ")
.appendWeeks().appendSuffix(" weeks, ")
.appendDays().appendSuffix(" days, ")
.appendHours().appendSuffix(" hours, ")
.appendMinutes().appendSuffix(" minutes, ")
.appendSeconds().appendSuffix(" seconds")
.printZeroNever()
.toFormatter();
return formatter.print(period);
}
private static DateTime getLaunched() {
if (launched == null) {
final String path = play.Play.application().path().getAbsolutePath() + "/RUNNING_PID";
final File pidFile = new File(path);
if (pidFile.exists()) {
launched = new DateTime(pidFile.lastModified());
} else {
Logger.warn("Using fallback to determine uptime - which is ok while developing...");
launched = new DateTime();
}
}
return launched;
}
}
基本上,我使用PID文件的时间戳作为运行中的应用程序的第一次使用的回退。方法
getLaunched()