mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-02-10 09:21:35 +01:00
CallEvents.SERVER_PERIODICAL calls
This commit is contained in:
parent
4fe85d95ed
commit
ee795b7702
@ -19,6 +19,7 @@ package com.djrapitops.plan.system.tasks;
|
|||||||
import com.djrapitops.plan.Plan;
|
import com.djrapitops.plan.Plan;
|
||||||
import com.djrapitops.plan.ShutdownHook;
|
import com.djrapitops.plan.ShutdownHook;
|
||||||
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
||||||
|
import com.djrapitops.plan.extension.ExtensionServerMethodCallerTask;
|
||||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||||
import com.djrapitops.plan.system.settings.paths.TimeSettings;
|
import com.djrapitops.plan.system.settings.paths.TimeSettings;
|
||||||
import com.djrapitops.plan.system.tasks.bukkit.BukkitTPSCountTimer;
|
import com.djrapitops.plan.system.tasks.bukkit.BukkitTPSCountTimer;
|
||||||
@ -50,6 +51,7 @@ public class BukkitTaskSystem extends ServerTaskSystem {
|
|||||||
private final PingCountTimerBukkit pingCountTimer;
|
private final PingCountTimerBukkit pingCountTimer;
|
||||||
private final ConfigStoreTask configStoreTask;
|
private final ConfigStoreTask configStoreTask;
|
||||||
private final DBCleanTask dbCleanTask;
|
private final DBCleanTask dbCleanTask;
|
||||||
|
private final ExtensionServerMethodCallerTask extensionServerMethodCallerTask;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public BukkitTaskSystem(
|
public BukkitTaskSystem(
|
||||||
@ -65,7 +67,8 @@ public class BukkitTaskSystem extends ServerTaskSystem {
|
|||||||
LogsFolderCleanTask logsFolderCleanTask,
|
LogsFolderCleanTask logsFolderCleanTask,
|
||||||
PlayersPageRefreshTask playersPageRefreshTask,
|
PlayersPageRefreshTask playersPageRefreshTask,
|
||||||
ConfigStoreTask configStoreTask,
|
ConfigStoreTask configStoreTask,
|
||||||
DBCleanTask dbCleanTask
|
DBCleanTask dbCleanTask,
|
||||||
|
ExtensionServerMethodCallerTask extensionServerMethodCallerTask
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
runnableFactory,
|
runnableFactory,
|
||||||
@ -80,6 +83,7 @@ public class BukkitTaskSystem extends ServerTaskSystem {
|
|||||||
this.pingCountTimer = pingCountTimer;
|
this.pingCountTimer = pingCountTimer;
|
||||||
this.configStoreTask = configStoreTask;
|
this.configStoreTask = configStoreTask;
|
||||||
this.dbCleanTask = dbCleanTask;
|
this.dbCleanTask = dbCleanTask;
|
||||||
|
this.extensionServerMethodCallerTask = extensionServerMethodCallerTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -88,20 +92,24 @@ public class BukkitTaskSystem extends ServerTaskSystem {
|
|||||||
try {
|
try {
|
||||||
plugin.registerListener(pingCountTimer);
|
plugin.registerListener(pingCountTimer);
|
||||||
long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS);
|
long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS);
|
||||||
registerTask("PingCountTimer", pingCountTimer)
|
registerTask(pingCountTimer).runTaskTimer(startDelay, 40L);
|
||||||
.runTaskTimer(startDelay, 40L);
|
|
||||||
|
|
||||||
// +40 ticks / 2 seconds so that update check task runs first.
|
|
||||||
long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40;
|
|
||||||
registerTask("Config Store Task", configStoreTask).runTaskLaterAsynchronously(storeDelay);
|
|
||||||
|
|
||||||
registerTask("DB Clean Task", dbCleanTask).runTaskTimerAsynchronously(
|
|
||||||
TimeAmount.toTicks(20, TimeUnit.SECONDS),
|
|
||||||
TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS)
|
|
||||||
);
|
|
||||||
} catch (ExceptionInInitializerError | NoClassDefFoundError ignore) {
|
} catch (ExceptionInInitializerError | NoClassDefFoundError ignore) {
|
||||||
// Running CraftBukkit
|
// Running CraftBukkit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// +40 ticks / 2 seconds so that update check task runs first.
|
||||||
|
long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40;
|
||||||
|
registerTask(configStoreTask).runTaskLaterAsynchronously(storeDelay);
|
||||||
|
|
||||||
|
registerTask(dbCleanTask).runTaskTimerAsynchronously(
|
||||||
|
TimeAmount.toTicks(20, TimeUnit.SECONDS),
|
||||||
|
TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS)
|
||||||
|
);
|
||||||
|
|
||||||
|
long extensionRefreshPeriod = TimeAmount.toTicks(config.get(TimeSettings.EXTENSION_DATA_REFRESH_PERIOD), TimeUnit.MILLISECONDS);
|
||||||
|
registerTask(extensionServerMethodCallerTask).runTaskTimerAsynchronously(
|
||||||
|
TimeAmount.toTicks(30, TimeUnit.SECONDS), extensionRefreshPeriod
|
||||||
|
);
|
||||||
shutdownHook.register();
|
shutdownHook.register();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ package com.djrapitops.plan.system.tasks;
|
|||||||
|
|
||||||
import com.djrapitops.plan.PlanBungee;
|
import com.djrapitops.plan.PlanBungee;
|
||||||
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
||||||
|
import com.djrapitops.plan.extension.ExtensionServerMethodCallerTask;
|
||||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||||
import com.djrapitops.plan.system.settings.paths.TimeSettings;
|
import com.djrapitops.plan.system.settings.paths.TimeSettings;
|
||||||
import com.djrapitops.plan.system.tasks.bungee.BungeeTPSCountTimer;
|
import com.djrapitops.plan.system.tasks.bungee.BungeeTPSCountTimer;
|
||||||
@ -47,6 +48,7 @@ public class BungeeTaskSystem extends TaskSystem {
|
|||||||
private final PlayersPageRefreshTask playersPageRefreshTask;
|
private final PlayersPageRefreshTask playersPageRefreshTask;
|
||||||
private final NetworkConfigStoreTask networkConfigStoreTask;
|
private final NetworkConfigStoreTask networkConfigStoreTask;
|
||||||
private final DBCleanTask dbCleanTask;
|
private final DBCleanTask dbCleanTask;
|
||||||
|
private final ExtensionServerMethodCallerTask extensionServerMethodCallerTask;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public BungeeTaskSystem(
|
public BungeeTaskSystem(
|
||||||
@ -59,7 +61,8 @@ public class BungeeTaskSystem extends TaskSystem {
|
|||||||
LogsFolderCleanTask logsFolderCleanTask,
|
LogsFolderCleanTask logsFolderCleanTask,
|
||||||
PlayersPageRefreshTask playersPageRefreshTask,
|
PlayersPageRefreshTask playersPageRefreshTask,
|
||||||
NetworkConfigStoreTask networkConfigStoreTask,
|
NetworkConfigStoreTask networkConfigStoreTask,
|
||||||
DBCleanTask dbCleanTask
|
DBCleanTask dbCleanTask,
|
||||||
|
ExtensionServerMethodCallerTask extensionServerMethodCallerTask
|
||||||
) {
|
) {
|
||||||
super(runnableFactory, bungeeTPSCountTimer);
|
super(runnableFactory, bungeeTPSCountTimer);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
@ -71,6 +74,7 @@ public class BungeeTaskSystem extends TaskSystem {
|
|||||||
this.playersPageRefreshTask = playersPageRefreshTask;
|
this.playersPageRefreshTask = playersPageRefreshTask;
|
||||||
this.networkConfigStoreTask = networkConfigStoreTask;
|
this.networkConfigStoreTask = networkConfigStoreTask;
|
||||||
this.dbCleanTask = dbCleanTask;
|
this.dbCleanTask = dbCleanTask;
|
||||||
|
this.extensionServerMethodCallerTask = extensionServerMethodCallerTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -85,18 +89,23 @@ public class BungeeTaskSystem extends TaskSystem {
|
|||||||
|
|
||||||
plugin.registerListener(pingCountTimer);
|
plugin.registerListener(pingCountTimer);
|
||||||
long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS);
|
long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS);
|
||||||
runnableFactory.create("PingCountTimer", pingCountTimer).runTaskTimer(startDelay, PingCountTimerBungee.PING_INTERVAL);
|
registerTask(pingCountTimer).runTaskTimer(startDelay, PingCountTimerBungee.PING_INTERVAL);
|
||||||
|
|
||||||
registerTask(playersPageRefreshTask)
|
registerTask(playersPageRefreshTask)
|
||||||
.runTaskTimerAsynchronously(TimeAmount.toTicks(5L, TimeUnit.MINUTES), TimeAmount.toTicks(5L, TimeUnit.MINUTES));
|
.runTaskTimerAsynchronously(TimeAmount.toTicks(5L, TimeUnit.MINUTES), TimeAmount.toTicks(5L, TimeUnit.MINUTES));
|
||||||
|
|
||||||
// +40 ticks / 2 seconds so that update check task runs first.
|
// +40 ticks / 2 seconds so that update check task runs first.
|
||||||
long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40;
|
long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40;
|
||||||
registerTask("Config Store Task", networkConfigStoreTask).runTaskLaterAsynchronously(storeDelay);
|
registerTask(networkConfigStoreTask).runTaskLaterAsynchronously(storeDelay);
|
||||||
|
|
||||||
registerTask("DB Clean Task", dbCleanTask).runTaskTimerAsynchronously(
|
registerTask(dbCleanTask).runTaskTimerAsynchronously(
|
||||||
TimeAmount.toTicks(20, TimeUnit.SECONDS),
|
TimeAmount.toTicks(20, TimeUnit.SECONDS),
|
||||||
TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS)
|
TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
long extensionRefreshPeriod = TimeAmount.toTicks(config.get(TimeSettings.EXTENSION_DATA_REFRESH_PERIOD), TimeUnit.MILLISECONDS);
|
||||||
|
registerTask(extensionServerMethodCallerTask).runTaskTimerAsynchronously(
|
||||||
|
TimeAmount.toTicks(30, TimeUnit.SECONDS), extensionRefreshPeriod
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of Player Analytics (Plan).
|
||||||
|
*
|
||||||
|
* Plan is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Lesser General Public License v3 as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Plan is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with Plan. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.djrapitops.plan.extension;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.task.AbsRunnable;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Task for updating {@link DataExtension} server values periodically.
|
||||||
|
*
|
||||||
|
* @author Rsl1122
|
||||||
|
*/
|
||||||
|
@Singleton
|
||||||
|
public class ExtensionServerMethodCallerTask extends AbsRunnable {
|
||||||
|
|
||||||
|
private final ExtensionServiceImplementation extensionServiceImplementation;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ExtensionServerMethodCallerTask(ExtensionServiceImplementation extensionServiceImplementation) {
|
||||||
|
this.extensionServiceImplementation = extensionServiceImplementation;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
extensionServiceImplementation.updateServerValues(CallEvents.SERVER_PERIODICAL);
|
||||||
|
}
|
||||||
|
}
|
@ -37,6 +37,7 @@ public class TimeSettings {
|
|||||||
public static final Setting<Long> ACTIVE_PLAY_THRESHOLD = new TimeSetting("Time.Thresholds.Activity_index.Playtime_threshold");
|
public static final Setting<Long> ACTIVE_PLAY_THRESHOLD = new TimeSetting("Time.Thresholds.Activity_index.Playtime_threshold");
|
||||||
public static final Setting<Long> KEEP_INACTIVE_PLAYERS = new TimeSetting("Time.Thresholds.Remove_inactive_player_data_after");
|
public static final Setting<Long> KEEP_INACTIVE_PLAYERS = new TimeSetting("Time.Thresholds.Remove_inactive_player_data_after");
|
||||||
public static final Setting<Long> ANALYSIS_REFRESH_PERIOD = new TimeSetting("Time.Periodic_tasks.Analysis_refresh_every");
|
public static final Setting<Long> ANALYSIS_REFRESH_PERIOD = new TimeSetting("Time.Periodic_tasks.Analysis_refresh_every");
|
||||||
|
public static final Setting<Long> EXTENSION_DATA_REFRESH_PERIOD = new TimeSetting("Time.Periodic_tasks.Extension_data_refresh_every");
|
||||||
public static final Setting<Long> CLEAN_CACHE_PERIOD = new TimeSetting("Time.Periodic_tasks.Clean_caches_every");
|
public static final Setting<Long> CLEAN_CACHE_PERIOD = new TimeSetting("Time.Periodic_tasks.Clean_caches_every");
|
||||||
public static final Setting<Long> CLEAN_DATABASE_PERIOD = new TimeSetting("Time.Periodic_tasks.Clean_Database_every");
|
public static final Setting<Long> CLEAN_DATABASE_PERIOD = new TimeSetting("Time.Periodic_tasks.Clean_Database_every");
|
||||||
public static final Setting<Long> CONFIG_UPDATE_INTERVAL = new TimeSetting("Time.Periodic_tasks.Check_DB_for_server_config_files_every");
|
public static final Setting<Long> CONFIG_UPDATE_INTERVAL = new TimeSetting("Time.Periodic_tasks.Check_DB_for_server_config_files_every");
|
||||||
|
@ -86,6 +86,8 @@ Time:
|
|||||||
Remove_inactive_player_data_after: 180
|
Remove_inactive_player_data_after: 180
|
||||||
Unit: DAYS
|
Unit: DAYS
|
||||||
Periodic_tasks:
|
Periodic_tasks:
|
||||||
|
Extension_data_refresh_every: 1
|
||||||
|
Unit: HOURS
|
||||||
Check_DB_for_server_config_files_every: 1
|
Check_DB_for_server_config_files_every: 1
|
||||||
Unit: MINUTES
|
Unit: MINUTES
|
||||||
Clean_caches_every: 10
|
Clean_caches_every: 10
|
||||||
|
@ -93,6 +93,8 @@ Time:
|
|||||||
Periodic_tasks:
|
Periodic_tasks:
|
||||||
Analysis_refresh_every: 60
|
Analysis_refresh_every: 60
|
||||||
Unit: MINUTES
|
Unit: MINUTES
|
||||||
|
Extension_data_refresh_every: 1
|
||||||
|
Unit: HOURS
|
||||||
Check_DB_for_server_config_files_every: 1
|
Check_DB_for_server_config_files_every: 1
|
||||||
Unit: MINUTES
|
Unit: MINUTES
|
||||||
Clean_caches_every: 10
|
Clean_caches_every: 10
|
||||||
|
@ -19,6 +19,7 @@ package com.djrapitops.plan.system.tasks;
|
|||||||
import com.djrapitops.plan.PlanSponge;
|
import com.djrapitops.plan.PlanSponge;
|
||||||
import com.djrapitops.plan.ShutdownHook;
|
import com.djrapitops.plan.ShutdownHook;
|
||||||
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
||||||
|
import com.djrapitops.plan.extension.ExtensionServerMethodCallerTask;
|
||||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||||
import com.djrapitops.plan.system.settings.paths.TimeSettings;
|
import com.djrapitops.plan.system.settings.paths.TimeSettings;
|
||||||
import com.djrapitops.plan.system.tasks.server.BootAnalysisTask;
|
import com.djrapitops.plan.system.tasks.server.BootAnalysisTask;
|
||||||
@ -43,6 +44,7 @@ public class SpongeTaskSystem extends ServerTaskSystem {
|
|||||||
private final PingCountTimerSponge pingCountTimer;
|
private final PingCountTimerSponge pingCountTimer;
|
||||||
private final ConfigStoreTask configStoreTask;
|
private final ConfigStoreTask configStoreTask;
|
||||||
private final DBCleanTask dbCleanTask;
|
private final DBCleanTask dbCleanTask;
|
||||||
|
private final ExtensionServerMethodCallerTask extensionServerMethodCallerTask;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SpongeTaskSystem(
|
public SpongeTaskSystem(
|
||||||
@ -57,7 +59,8 @@ public class SpongeTaskSystem extends ServerTaskSystem {
|
|||||||
LogsFolderCleanTask logsFolderCleanTask,
|
LogsFolderCleanTask logsFolderCleanTask,
|
||||||
PlayersPageRefreshTask playersPageRefreshTask,
|
PlayersPageRefreshTask playersPageRefreshTask,
|
||||||
ConfigStoreTask configStoreTask,
|
ConfigStoreTask configStoreTask,
|
||||||
DBCleanTask dbCleanTask
|
DBCleanTask dbCleanTask,
|
||||||
|
ExtensionServerMethodCallerTask extensionServerMethodCallerTask
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
runnableFactory,
|
runnableFactory,
|
||||||
@ -72,6 +75,7 @@ public class SpongeTaskSystem extends ServerTaskSystem {
|
|||||||
this.pingCountTimer = pingCountTimer;
|
this.pingCountTimer = pingCountTimer;
|
||||||
this.configStoreTask = configStoreTask;
|
this.configStoreTask = configStoreTask;
|
||||||
this.dbCleanTask = dbCleanTask;
|
this.dbCleanTask = dbCleanTask;
|
||||||
|
this.extensionServerMethodCallerTask = extensionServerMethodCallerTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -80,18 +84,22 @@ public class SpongeTaskSystem extends ServerTaskSystem {
|
|||||||
|
|
||||||
plugin.registerListener(pingCountTimer);
|
plugin.registerListener(pingCountTimer);
|
||||||
long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS);
|
long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS);
|
||||||
runnableFactory.create("PingCountTimer", pingCountTimer)
|
registerTask(pingCountTimer).runTaskTimer(startDelay, PingCountTimerSponge.PING_INTERVAL);
|
||||||
.runTaskTimer(startDelay, PingCountTimerSponge.PING_INTERVAL);
|
|
||||||
|
|
||||||
// +40 ticks / 2 seconds so that update check task runs first.
|
// +40 ticks / 2 seconds so that update check task runs first.
|
||||||
long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40;
|
long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40;
|
||||||
registerTask("Config Store Task", configStoreTask).runTaskLaterAsynchronously(storeDelay);
|
registerTask(configStoreTask).runTaskLaterAsynchronously(storeDelay);
|
||||||
|
|
||||||
registerTask("DB Clean Task", dbCleanTask).runTaskTimerAsynchronously(
|
registerTask(dbCleanTask).runTaskTimerAsynchronously(
|
||||||
TimeAmount.toTicks(20, TimeUnit.SECONDS),
|
TimeAmount.toTicks(20, TimeUnit.SECONDS),
|
||||||
TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS)
|
TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
long extensionRefreshPeriod = TimeAmount.toTicks(config.get(TimeSettings.EXTENSION_DATA_REFRESH_PERIOD), TimeUnit.MILLISECONDS);
|
||||||
|
registerTask(extensionServerMethodCallerTask).runTaskTimerAsynchronously(
|
||||||
|
TimeAmount.toTicks(30, TimeUnit.SECONDS), extensionRefreshPeriod
|
||||||
|
);
|
||||||
|
|
||||||
shutdownHook.register();
|
shutdownHook.register();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ package com.djrapitops.plan.system.tasks;
|
|||||||
|
|
||||||
import com.djrapitops.plan.PlanVelocity;
|
import com.djrapitops.plan.PlanVelocity;
|
||||||
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
import com.djrapitops.plan.db.tasks.DBCleanTask;
|
||||||
|
import com.djrapitops.plan.extension.ExtensionServerMethodCallerTask;
|
||||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||||
import com.djrapitops.plan.system.settings.paths.TimeSettings;
|
import com.djrapitops.plan.system.settings.paths.TimeSettings;
|
||||||
import com.djrapitops.plan.system.tasks.proxy.NetworkConfigStoreTask;
|
import com.djrapitops.plan.system.tasks.proxy.NetworkConfigStoreTask;
|
||||||
@ -47,6 +48,7 @@ public class VelocityTaskSystem extends TaskSystem {
|
|||||||
private final PlayersPageRefreshTask playersPageRefreshTask;
|
private final PlayersPageRefreshTask playersPageRefreshTask;
|
||||||
private final NetworkConfigStoreTask networkConfigStoreTask;
|
private final NetworkConfigStoreTask networkConfigStoreTask;
|
||||||
private final DBCleanTask dbCleanTask;
|
private final DBCleanTask dbCleanTask;
|
||||||
|
private final ExtensionServerMethodCallerTask extensionServerMethodCallerTask;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public VelocityTaskSystem(
|
public VelocityTaskSystem(
|
||||||
@ -59,7 +61,8 @@ public class VelocityTaskSystem extends TaskSystem {
|
|||||||
LogsFolderCleanTask logsFolderCleanTask,
|
LogsFolderCleanTask logsFolderCleanTask,
|
||||||
PlayersPageRefreshTask playersPageRefreshTask,
|
PlayersPageRefreshTask playersPageRefreshTask,
|
||||||
NetworkConfigStoreTask networkConfigStoreTask,
|
NetworkConfigStoreTask networkConfigStoreTask,
|
||||||
DBCleanTask dbCleanTask
|
DBCleanTask dbCleanTask,
|
||||||
|
ExtensionServerMethodCallerTask extensionServerMethodCallerTask
|
||||||
) {
|
) {
|
||||||
super(runnableFactory, velocityTPSCountTimer);
|
super(runnableFactory, velocityTPSCountTimer);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
@ -71,6 +74,7 @@ public class VelocityTaskSystem extends TaskSystem {
|
|||||||
this.playersPageRefreshTask = playersPageRefreshTask;
|
this.playersPageRefreshTask = playersPageRefreshTask;
|
||||||
this.networkConfigStoreTask = networkConfigStoreTask;
|
this.networkConfigStoreTask = networkConfigStoreTask;
|
||||||
this.dbCleanTask = dbCleanTask;
|
this.dbCleanTask = dbCleanTask;
|
||||||
|
this.extensionServerMethodCallerTask = extensionServerMethodCallerTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -85,18 +89,22 @@ public class VelocityTaskSystem extends TaskSystem {
|
|||||||
|
|
||||||
plugin.registerListener(pingCountTimer);
|
plugin.registerListener(pingCountTimer);
|
||||||
long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS);
|
long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS);
|
||||||
runnableFactory.create("PingCountTimer", pingCountTimer).runTaskTimer(startDelay, PingCountTimerVelocity.PING_INTERVAL);
|
registerTask(pingCountTimer).runTaskTimer(startDelay, PingCountTimerVelocity.PING_INTERVAL);
|
||||||
|
|
||||||
registerTask(playersPageRefreshTask)
|
registerTask(playersPageRefreshTask).runTaskTimerAsynchronously(TimeAmount.toTicks(5L, TimeUnit.MINUTES), TimeAmount.toTicks(5L, TimeUnit.MINUTES));
|
||||||
.runTaskTimerAsynchronously(TimeAmount.toTicks(5L, TimeUnit.MINUTES), TimeAmount.toTicks(5L, TimeUnit.MINUTES));
|
|
||||||
|
|
||||||
// +40 ticks / 2 seconds so that update check task runs first.
|
// +40 ticks / 2 seconds so that update check task runs first.
|
||||||
long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40;
|
long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40;
|
||||||
registerTask("Config Store Task", networkConfigStoreTask).runTaskLaterAsynchronously(storeDelay);
|
registerTask(networkConfigStoreTask).runTaskLaterAsynchronously(storeDelay);
|
||||||
|
|
||||||
registerTask("DB Clean Task", dbCleanTask).runTaskTimerAsynchronously(
|
registerTask(dbCleanTask).runTaskTimerAsynchronously(
|
||||||
TimeAmount.toTicks(20, TimeUnit.SECONDS),
|
TimeAmount.toTicks(20, TimeUnit.SECONDS),
|
||||||
TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS)
|
TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
long extensionRefreshPeriod = TimeAmount.toTicks(config.get(TimeSettings.EXTENSION_DATA_REFRESH_PERIOD), TimeUnit.MILLISECONDS);
|
||||||
|
registerTask(extensionServerMethodCallerTask).runTaskTimerAsynchronously(
|
||||||
|
TimeAmount.toTicks(30, TimeUnit.SECONDS), extensionRefreshPeriod
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user