Skip to content

Commit 0cae00f

Browse files
committed
fix High CPU
Disable multiple refresh data, and on event to fix high CPU usage
1 parent 77c84f0 commit 0cae00f

File tree

2 files changed

+38
-24
lines changed

2 files changed

+38
-24
lines changed

octoprint_stats/__init__.py

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -232,26 +232,29 @@ def on_after_startup(self):
232232
self.todayStatDataset = []
233233
self.todaykWhDataset = []
234234

235-
self.refreshFull(filter_param=self.current_filter)
236-
self.refreshHour(filter_param=self.current_filter)
237-
self.refreshDay(filter_param=self.current_filter)
238-
self.refreshPrint(filter_param=self.current_filter)
239-
self.refreshTime(filter_param=self.current_filter)
240-
self.refreshWatts(filter_param=self.current_filter)
235+
#self.refreshFull(filter_param=self.current_filter)
236+
#self.refreshHour(filter_param=self.current_filter)
237+
#self.refreshDay(filter_param=self.current_filter)
238+
#self.refreshPrint(filter_param=self.current_filter)
239+
#self.refreshTime(filter_param=self.current_filter)
240+
#self.refreshWatts(filter_param=self.current_filter)
241241

242-
self.refreshSidePrint()
243-
self.refreshSideDay()
244-
self.refreshSidekWh()
242+
#self.refreshSidePrint()
243+
#self.refreshSideDay()
244+
#self.refreshSidekWh()
245245

246246
def get_settings_defaults(self):
247+
# Default autorefresh false
248+
247249
return dict(
248250
pcbheatbed="98.5",
249251
hotend="32.5",
250252
steppermotors="0.6",
251253
eletronics="11.3",
252254
daystats=False,
253255
daykwh=False,
254-
dayprint=False
256+
dayprint=False,
257+
autorefresh=False
255258
)
256259

257260
def get_template_configs(self):
@@ -774,9 +777,17 @@ def refreshSidekWh(self):
774777
self._plugin_manager.send_plugin_message(self._identifier, dict(todaykWhDataset=[]))
775778

776779
def on_event(self, event, payload):
777-
"""
778-
Callback for general OctoPrint events.
779-
"""
780+
# Prevent run at only supported Events
781+
supportedEvents = [octoprint.events.Events.CONNECTED, octoprint.events.Events.DISCONNECTED, octoprint.events.Events.UPLOAD,
782+
octoprint.events.Events.PRINT_STARTED, octoprint.events.Events.PRINT_DONE, octoprint.events.Events.PRINT_FAILED,
783+
octoprint.events.Events.PRINT_CANCELLED, octoprint.events.Events.PRINT_PAUSED, octoprint.events.Events.PRINT_RESUMED,
784+
octoprint.events.Events.ERROR]
785+
786+
if not event in supportedEvents:
787+
return
788+
789+
self._logger.info("Printer Stats - on_event")
790+
780791
# prevent run of not fully started plugin
781792
if not hasattr(self, 'statDB'):
782793
return
@@ -966,17 +977,20 @@ def on_event(self, event, payload):
966977
if eventData != None:
967978
self.statDB.execute(eventData, 'events')
968979

969-
self.refreshFull(filter_param=self.current_filter)
970-
self.refreshHour(filter_param=self.current_filter)
971-
self.refreshDay(filter_param=self.current_filter)
972-
self.refreshPrint(filter_param=self.current_filter)
973-
self.refreshTime(filter_param=self.current_filter)
974-
self.refreshWatts(filter_param=self.current_filter)
980+
981+
# Disabled refresh at all events for reduce CPU usage
982+
983+
#self.refreshFull(filter_param=self.current_filter)
984+
#self.refreshHour(filter_param=self.current_filter)
985+
#self.refreshDay(filter_param=self.current_filter)
986+
#self.refreshPrint(filter_param=self.current_filter)
987+
#self.refreshTime(filter_param=self.current_filter)
988+
#self.refreshWatts(filter_param=self.current_filter)
975989

976990
# Side
977-
self.refreshSidePrint()
978-
self.refreshSideDay()
979-
self.refreshSidekWh()
991+
#self.refreshSidePrint()
992+
#self.refreshSideDay()
993+
#self.refreshSidekWh()
980994

981995
##~~ Softwareupdate hook
982996
def get_update_information(self):
@@ -1001,7 +1015,7 @@ def get_update_information(self):
10011015
# ("OctoPrint-PluginSkeleton"), you may define that here. Same goes for the other metadata derived from setup.py that
10021016
# can be overwritten via __plugin_xyz__ control properties. See the documentation for that.
10031017
__plugin_name__ = "Printer Stats"
1004-
__plugin_version__ = "2.0.0"
1018+
__plugin_version__ = "2.0.2"
10051019
__plugin_description__ = "Statistics of your 3D Printer"
10061020

10071021
def __plugin_load__():

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
plugin_name = "OctoPrint-Stats"
1515

1616
# The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module
17-
plugin_version = "2.0.0"
17+
plugin_version = "2.0.2"
1818

1919
# The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin
2020
# module

0 commit comments

Comments
 (0)