Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
java中高效跟踪数据库时间的方法_Java_Database_Bukkit - Fatal编程技术网

java中高效跟踪数据库时间的方法

java中高效跟踪数据库时间的方法,java,database,bukkit,Java,Database,Bukkit,在我开始之前,我想说这与Bukkit插件有关 我试着在网上搜索,但我找不到一个好方法 我正在尝试构建一个插件,该插件可以连接到数据库(通常是MySQL),并在本地跟踪数据库的时间,即使它停止运行。该插件是一个ban管理系统,用于多台服务器。情况是这样的:数据库服务器的时区与服务器上的时间不同,并且每台服务器都有自己的时区。只有一个数据库,因此,最好的方法是使用数据库的时间跟踪时间。但是,如果数据库宕机,线程将一直运行,直到数据库返回并成功插入记录。如果我在创建禁令时存储的列上使用UNIX_TIM

在我开始之前,我想说这与Bukkit插件有关

我试着在网上搜索,但我找不到一个好方法

我正在尝试构建一个插件,该插件可以连接到数据库(通常是MySQL),并在本地跟踪数据库的时间,即使它停止运行。该插件是一个ban管理系统,用于多台服务器。情况是这样的:数据库服务器的时区与服务器上的时间不同,并且每台服务器都有自己的时区。只有一个数据库,因此,最好的方法是使用数据库的时间跟踪时间。但是,如果数据库宕机,线程将一直运行,直到数据库返回并成功插入记录。如果我在创建禁令时存储的列上使用UNIX_TIMESTAMP(),如果数据库关闭,它只会在数据库返回后开始计数。所以,分解它,我想要的是一种跟踪数据库时间的方法,即使数据库发生故障又恢复正常


提前感谢。

插入程序计算的时间(事件真正发生时,而不是db“最终”插入数据时)。无论服务器是什么,它都应该大致相同。基于时钟差异可能会有轻微的差异,但您可以通过最小化该差异来保持服务器的时间同步

你是说你已经知道如何从数据库中获取时间了,而你真正的问题是如何获得数据库时间的最佳猜测,即使它关闭了?是的,这就是为什么我要这么做。很抱歉回答得太晚。在查找日期的类中,每次您获得日期时,您还可以计算您的系统时间(即JVM报告的当前时间)并计算它的不同秒数。(当表示为同一时区时,应该不会有太大差异。)然后,如果数据库处于脱机状态,则可以从JVM返回时间,并根据保存的差异进行调整。仅仅将数据库用作时间服务器似乎有点奇怪。而且,如果您使用它的目的不止这些,那么在读/写数据时,您可能会遇到更大的问题。因为所有服务器都有不同的时区,所以我希望使用数据库时间,因为除非数据库的主机服务器更改,否则数据库时间不会更改。数据库确实也被用来存储禁令,使用数据库中的时间来存储禁令的日期对我来说似乎是合乎逻辑的事情,但是是的,这有点奇怪。无论如何,我已经完成了:当插件第一次连接到数据库时,它会安排每秒执行一个任务,其中有一个存储数据库时间的变量,并在每次任务执行时增加该变量。无论如何谢谢你!